我是在安装qt时直接勾选了qt中的qtpropertybrowser的源码。在新的项目中,我直接将Qt5.9.9\5.9.9\Src\qttools\src\shared\qtpropertybrowser文件夹引入我VS新建的工程中,一开始编译就一大堆问题:
仔细一看发现都是moc_文件的问题。qt的moc在预编译的时候会将Q_OBJECT宏展开,生成一个moc_xxx.cpp文件,插入到源文件中参与编译。我们可以发现,qtpropertybrowser这个控件里面所关联到的类是没有Q_OBJECT宏的,如下的QtButtonPropertyBrowserPrivate
这就导致moc_QtButtonPropertyBrowser.cpp中找不到QtButtonPropertyBrowserPrivate的定义。因此会报如此错误。
解决方法:就是在包含这样的类的头文件,右键点击“属性”,将“Dynamic C++ Source”一项改为"Disable"。
改完重新编译,问题解决。希望对大家有帮助。