1. main.cpp的文件中必须包含<QApplication>,其他的根据设计到的控件和类进行添加;
2. 在类定义时必须包含Q_OBJECT,因为如果不包括可能造成信号和槽机制不能正常运行,导致出错;
如果删掉Q_OBJECT宏,则编译没有任何问题。郁闷了几个小时,后在网上找到了解决办法:重新运行qmake,问题解决。出现该问题的可能的原因是:qmake生成Makefile的时候,这个类的头文件中并没有Q_OBJECT,所以在相应的Makefile里面并没有用moc xxx.h命令,最终导致链接失败。qmake不会处理.cpp文件里的Q_OBJECT,所以,如果在.cpp文件中有它的话,也会产生vtable编译错误。这时,需要先用moc xxxx.cpp生成相应的moc文件,再包含到.cpp里面去,才能解决这个问题。这里可以发现问题的出现是因为没有moc生成相应的moc