Pregunta

Estoy usando VS2008 con QT 4.7.1 y complementos. Soy nuevo en este entorno.
Me las arreglé para hacer la configuración necesaria y ejecutar "Hola mundo". Pero cuando trato de usar simplequit() Ranura al hacer clic en un botón, fallé. También resulta en la compilación falló al intentar usar Q_OBJECT.
Después de comentar Q_OBJECT El código se crea y depurará. Ahora se muestra

Qobject :: Connect: no hay tal tragamonedas qwidget :: quit () in. Main.cpp encontrado.

A continuación se muestra mi código

#include <QtGui>
#include "QtGui\QApplication"
#include "QObject"


class Notepad : public QWidget
{
    //Q_OBJECT 
public:
    Notepad();
    private slots:
        void quit();

private:
    QTextEdit *textEdit;
    QPushButton *quitButton;
}; 

Notepad::Notepad()
{
    textEdit = new QTextEdit;
    quitButton = new QPushButton(tr("Quit"));
    connect(quitButton, SIGNAL(clicked()), this, SLOT(quit() ));
    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(textEdit);
    layout->addWidget(quitButton);

    setLayout(layout);

    setWindowTitle(tr("Notepad"));
}


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    Notepad nt;// = new Notepad();
    nt.show();

    return a.exec();
}

He buscado a través de la red pero no pude obtener una solución razonable. La mayor parte de la solución es para trabajar con Qmake en la línea de comandos. También puedo encontrar el archivo .pro para el proyecto.

Se agradece cualquier ayuda.

¿Fue útil?

Solución

NITESH: Necesita la macro Q_Object para que las ranuras funcionen correctamente, el MOC compila cada encabezado que contiene Q_Object en MOC_*archivo .cpp. Agrega ese MOC*.cpp a su proyecto y todo debería funcionar bien. El externo no resuelto significa que le falta la definición de la función, ¿la definió en cualquier lugar?

Otros consejos

Mueva la Declaración de Bloc de notas a un encabezado (por ejemplo, Notepad.h), reenable el Q_Object, luego agregue a su archivo .pro:

HEADERS += notepad.h

Rerún Qmake, entonces debería funcionar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top