背景:在原有的项目上添加新的类,添加Q_OBJECT后报错。
问题原因:VS在第一次编译后,之后就不会再调用MOC命令。也就是再添加的类中有信号与槽机制时(加Q_OBJECT),是不会调用MOC,将新的类转化为标准C++兼容形式,就会报错。
解决方法:
1.找到当前用的Qt版本,进入到moc.exe所在文件夹下面。cmd到当前目录
2.按照下图格式将头文件转化为moc文件
3.将生成的moc_XX.cpp文件放到GeneratedFilesDebug的目录下。再在VS界面中添加moc文件。
4.重新编译运行。
附:moc的作用: