写了一个小程序,点击一次按钮使LCD自增1
- #include<QApplication>
- #include<QtGui>
- class MyWidget: public QWidget
- {
- Q_OBJECT
- public:
- MyWidget(QWidget *parent=0);
- int vote;
- public slots:
- void addVote();
- private:
- QLCDNumber *lcd;
- QPushButton *btnVote;
- };
- MyWidget::MyWidget(QWidget *parent):QWidget(parent)
- {
- int vote=0;
- QLCDNumber *lcd=new QLCDNumber(2);
- QPushButton *btnVote=new QPushButton("Vote");
- lcd->display(vote);
- QObject::connect(btnVote,SIGNAL(clicked()),this,SLOT(addVote()));
- QVBoxLayout *layout=new QVBoxLayout;
- layout->addWidget(lcd);
- layout->addWidget(btnVote);
- setLayout(layout);
- }
- void MyWidget::addVote()
- {
- vote++;
- }
- int main(int argc,char *argv[])
- {
- QApplication app(argc,argv);
- MyWidget WidgetVote;
- WidgetVote.show();
- return app.exec();
- }
编译qmake -project,qmake,make后提示
- gary@gary-laptop:~/qtmine$ make
- g++ -o qtmine main.o -L/usr/lib -lQtGui -lQtCore -lpthread
- main.o: In function `MyWidget':
- /home/gary/qtmine/main.cpp:18: undefined reference to `vtable for MyWidget'
- /home/gary/qtmine/main.cpp:18: undefined reference to `vtable for MyWidget'
- /home/gary/qtmine/main.cpp:18: undefined reference to `vtable for MyWidget'
- /home/gary/qtmine/main.cpp:18: undefined reference to `vtable for MyWidget'
- main.o: In function `~MyWidget':
- /home/gary/qtmine/main.cpp:6: undefined reference to `vtable for MyWidget'
- main.o:/home/gary/qtmine/main.cpp:6: more undefined references to `vtable for MyWidget' follow
- collect2: ld 返回 1
- make: *** [qtmine] 错误 1
- gary@gary-laptop:~/qtmine$
网上搜索后说出现vtable的错误似乎都和moc有关,但我在类声明里面加了Q_OBJECT,还是出现错误,请教高手指点,谢谢。