在Qt中通过信号与槽机制来实现不同对话框,或者是不同窗口中的控件之间的信息通信。
这需要在类的头文件中声明这个宏:Q_OBJECT
信号与槽之间可以进行通信的根本原因是:当在类的头文件中添加Q_OBJECT
以后QtCreator会自动的创建一个moc_…cpp文件,用于实现信号与槽通信的代码。但是,有时当我们通过QtCreator创建类的时候,没有通过IDE选项选择其派生自QObject类,而是在后面添加的,则会出现QtCreator没有自动创建moc_…cpp文件的情况。
这时在类的源文件就会出现这样的错误提示:undefined reference to 'vtable for ...
’
解决办法:
1.从头文件中,移除该源文件的头文件。
2.从现有文件中添加该源文件的头文件,这样QtCreator就会自动为该类创建moc_…cpp文件。