Ich bin noch relativ neu mit QT.
Mein Progamm funktioniert soweit ganz gut, doch ich bekomme mein Slot nicht ans Laufen.
Wenn ich Q_OBJECT auskommentiere, läuft das Programm zwar, aber der Slot funktioniert nicht. Andernfalls kommt die Fehlermeldung: "undefined reference to vtable: `MyWidget::MyWidget()'
Hier ist mein Code. Vielleicht kennt jemand die Lösung.
project.h
Code: Alles auswählen
class MyWidget :public QWidget
{
Q_OBJECT;
public:
MyWidget(void);
public slots:
void addint(void);
private:
QPushButton *add;
QLineEdit* num1 ;
QLineEdit* num2 ;
QLineEdit* num3 ;
};
#endif
Code: Alles auswählen
#include <QApplication>
#include <QLineEdit>
#include <QLabel>
#include <QPushButton>
#include <QLayout>
#include <QString>
#include "project.h"
#include <QtGui>
MyWidget::MyWidget(void)
{
num1 = new QLineEdit(this); // Text-Feld
num1->setText( "0" );
num2 = new QLineEdit(this); // Text-Feld
num2->setText( "0" );
num3 = new QLineEdit(this); // Text-Feld
num3->setText( "0" );
QPushButton *qpb = new QPushButton("Add",this); // Knopf
QLabel *qlab = new QLabel("Result",this); // label
QVBoxLayout* layout = new QVBoxLayout(this);
layout->addWidget(num1);
layout->addWidget(qpb);
layout->addWidget(num2);
layout->addWidget(qlab);
layout->addWidget(num3);
//
QObject::connect(qpb,SIGNAL(clicked()),this,SLOT(addint())); // button => addint
QObject::connect(num1,SIGNAL(returnPressed()),this,SLOT(addint())); // teield => addint
QObject::connect(num2,SIGNAL(returnPressed()),this,SLOT(addint()));
}
void MyWidget::addint() {
int v1 = (num1->text()).toInt();
int v2 = (num2->text()).toInt();
int v3 = v1 + v2;
QString qs;
qs.setNum(v3);
num3->setText(qs);
}
Code: Alles auswählen
#include "project.h"
int main(int argc,char** argv)
{
QApplication app(argc,argv);
QWidget* mywidget = new MyWidget();
mywidget->resize(120,130);
mywidget->show();
return app.exec();
}
Code: Alles auswählen
In function `MyWidget::MyWidget()':
project.cpp:(.text+0x2d): undefined reference to `vtable for MyWidget'
project.cpp:(.text+0x34): undefined reference to `vtable for MyWidget'
collect2: ld returned 1 exit status