Problem mit Qt Connections
-
Hi,
ich hab ein Problem mit meinem Qt-Programm:
ich wollte eigene slots schreiben damit button1, button2 bestimmte aktionen ausführen, aber ich erhalte beim linken (nicht beim kompilieren) eine fehlermeldung!hier kommt der quellcode und die fehlermeldung:
*******************************************
Start mywidget.h
*******************************************#ifndef MYWIDGET_H
#define MYWIDGET_H#include <qobject.h>
#include <qwidget.h>
#include <qlayout.h>
#include <qpushbutton.h>class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget();public slots:
void mySlot1();
void mySlot2();private:
QPushButton *button1;
QPushButton *button2;
QVBoxLayout *layout;
};#endif // MYWIDGET_H
******************************************
End mywidget.h
************************************************************************************
Start main.cpp
******************************************
#include "MyWidget.h"
#include <qapplication.h>
#include <qpushbutton.h>MyWidget::MyWidget()
:QWidget()
{
layout = new QVBoxLayout(this, 0, 0, "layout");
button1 = new QPushButton("button1", this, "button1");
button2 = new QPushButton("button2", this, "button2");this->setName("MyWidget");
this->resize(150, 50);
layout->addWidget(button1);
layout->addWidget(button2);connect(button1, SIGNAL(clicked()), this, SLOT(mySlot1()) );
connect(button2, SIGNAL(clicked()), this, SLOT(mySlot2()) );
}int main(int argc, char** argv)
{
// declaration
QApplication qApp(argc, argv);
MyWidget myWdg;// start prog
qApp.setMainWidget(&myWdg);
myWdg.show();
return qApp.exec();
}***********************************************
End main.cpp
**********************************************************************************************
Error-Message:
***********************************************
Kompilierung läuft...
moc_mywidget.cpp
Linker-Vorgang läuft...
moc_mywidget.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: void __thiscall MyWidget::mySlot2(void)" (?mySlot2@MyWidget@@QAEXXZ)
moc_mywidget.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: void __thiscall MyWidget::mySlot1(void)" (?mySlot1@MyWidget@@QAEXXZ)
Debug/qtTest.exe : fatal error LNK1120: 2 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.qtTest.exe - 3 Fehler, 0 Warnung(en)
***********************************************die datei moc_mywidget.cpp habe ich manuell mit dem moc erzeugt und dann in mein projekt importiert...
kann mir da jemand helfen?
danke im voraus
cu Errraddicator
-
hat sich erledigt, ich hatte vergessen die funktion mySlot1() und mySlot2() zu definieren..., ich hatte nämlich nur den Prototypen deklariert aber nicht die Funktion an sich...
trotzdem danke
cu Errraddicator