对于Qt来说,signal和slots是Qt的核心,而对于信号来说,只有继承了QObject的类,并且在类中添加Q_OBJECT宏,信号才能有效地和槽建立连接。可是在Qt开发的前期,可能预测不到需要在类中添加信号(也就是说没有添加Q_OBJECT宏),但是在后期开发加上Q_OBJECT宏和对应的信号时,重新执行qmake和build流程后,却会出现错误,错误代号是LINK2001:无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Widget::metaObject,即使是你执行清除编译文件后,再去执行qmake和build,还是还出现这个问题,正确的解决方案是:手动删除debug或者release的所有编译文件,然后重新执行qmake和build流程。