本来在Qt中使用信号(SIGNALS)和槽(SLOT)的机制时,继承于QOBJECT基类,添加Q_OBJECT时,需要重新qmake一下就会自动生成moc文件,但在Vs中则不行,需要重新设置一下

解决方式无非就是生成moc文件

1.在需要编译头文件上右键选择【属性】->【配置属性】中选择常规,将项类型修改为“自定义生成工具”,应用后第二项会变配置一下【命令行】和【输出】,后在文件上右键编译
在这里插入图片描述

命令行:"$(QTDIR)\bin\moc.exe" “%(FullPath)” -o “.\GeneratedFiles$(ConfigurationName)\moc_%(Filename).cpp”
输出:.\GeneratedFiles$(ConfigurationName)\moc_%(Filename).cpp

命令和使用cmd一样,下面说cmd

2.在CMD中使用moc “文件的绝对路径+xxx.h文件” -o “moc文件生成绝对路径+moc_xxx.cpp文件”(没有配置环境变量的需要进入Qt的安装目录编译器的bin目录,emm就是moc.exe的目录)
在这里插入图片描述
一般没有报错就完事了
在这里插入图片描述
3.将文件的属性页中的项类型改为Qt Meta-Object Compiler (moc)似乎也好使没有测试过。。。
在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐