我正在尝试使用QTPropertyBrowser来编辑我的QObjects的属性。 从QT Solutions的“QtPropertyBrowser”示例中,我在我的项目中使用以下文件。
我将我的CMakeFile配置如下:
#include_directories("/usr/include")
SET(QTVIEW_SRCS
src/main.cpp
src/TestWidget.cpp
src/plugin/IPlugin.cpp
src/objectcontroller.cpp
)
SET(QTVIEW_MOH_HDRS
src/TestWidget.h
src/plugin/IPlugin.h
src/objectcontroller.h
)
当我按照现有文件进行编译时,编译器会出现以下错误 -
C:\svn\osaka3d\trunk\osaka3d\QTView\src\moc_objectcontroller.cxx: 在成员函数 'virtual int ObjectController::qt_metacall(QMetaObject::Call, int, void**)' 中: C:\svn\osaka3d\trunk\osaka3d\QTView\src\moc_objectcontroller.cxx:73: 错误:无效使用不完整类型 'struct ObjectControllerPrivate' C:\svn\osaka3d\trunk\osaka3d\QTView\src/objectcontroller.h:45: 错误:前向声明 'struct ObjectControllerPrivate' C:\svn\osaka3d\trunk\osaka3d\QTView\src\moc_objectcontroller.cxx:73: 错误:'QtProperty' 前面需要类型说明符 C:\svn\osaka3d\trunk\osaka3d\QTView\src\moc_objectcontroller.cxx:73: 错误:'QtProperty' 前面需要 '>' C:\svn\osaka3d\trunk\osaka3d\QTView\src\moc_objectcontroller.cxx:73: 错误:'QtProperty' 前面需要 '(' C:\svn\osaka3d\trunk\osaka3d\QTView\src\moc_objectcontroller.cxx:73: 错误:该作用域中未声明 'QtProperty' C:\svn\osaka3d\trunk\osaka3d\QTView\src\moc_objectcontroller.cxx:73: 错误:')' 之前需要主表达式 mingw32-make2: * [CMakeFiles/qtview.dir/src/moc_objectcontroller.cxx.obj] 错误 1 mingw32-make1: [CMakeFiles/qtview.dir/all] 错误 2 mingw32-make: ** [all] 错误 2
但是当我注释掉这行代码:
Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QVariant &))
在"objectcontroller.h"中
并注释掉以下行:
#include "moc_objectcontroller.cxx"
在文件"objectcontroller.cpp"的末尾,编译通过了,但我无法使用SIGNALS/SLOTS来反映QObject参数的编辑。有什么提示吗?