QT中添加Q_OBJECT出现的问题
来源:互联网 发布:上海服务贸易数据 编辑:程序博客网 时间:2024/05/29 11:06
Multiple Inheritance Requires QObject to Be First(多重继承QObject一定要放在前面)
我在用class My_Node : public QGraphicsItem,public QObject来生成自己的类时,想使用信号和槽机制,但这是dys_node.h中没有Q_OBJECT,不能使用信号槽。我将Q_OBJECT加上之后,出现几个不知道是什么的错误。然后我将工程目录下的Makefile删除,然后重新编译、链接文件,刚才的错误消失了,但出现如下三个错误:
error: 'staticMetaObject' is not a member of 'QGraphicsItem'
error: 'qt_metacast' is not a member of 'QGraphicsItem'
error: 'qt_metacall' is not a member of 'QGraphicsItem'
通过google,我发现这个错误是由于没有继承QObject类而引起的,但是我已经继承了QObject类了啊,到底是怎么回事呢?
最后终于在网上找到了答案,当多继承的时候,要将QObject放在前面,即将类的声明改为
class My_Node : public QObject,public QGraphicsItem
问题就解决了!!!
下面是我从网络上找到的说明原文:
Just got this error message while compiling a tiny class that derives from QTreeWidgetItem:
error C2039: 'staticMetaObject' : is not a member of 'QTreeWidgetItem'
What this is saying is that QTreeWidgetItem does not inherit from QObject, meaning that your own, singly-inherited class also does not inherit from QObject. Inheriting from QObject is one of the prerequisites to using the Q_OBJECT macro, which, if you’re anything like me, you automatically insert into any Qt GUI related class.
If you’re not using any of the meta object stuff in your subclass, such as signals/slots or properties, just take out the Q_OBJECT macro. If you need to use signals and slots, you’ll need to make your subclass multiply-inherit from QObject as well. If you take this route, remember that “Multiple Inheritance Requires QObject to Be First”, otherwise you’ll get either the same error as above, or something along the lines of “YourClass inherits from two QObject subclasses” from the moc。
- QT中添加Q_OBJECT出现的问题
- QT中添加Q_OBJECT出现的问题
- QT中添加Q_OBJECT出现的问题
- QT中添加Q_OBJECT出现的问题
- QT中添加Q_OBJECT和继承QObject出现的问题
- QT 添加自定义类中使用Q_OBJECT宏问题
- Qt 中 Q_OBJECT与no such slot的问题
- qt creator中Q_OBJECT导致出现undefined reference to vtable for 的错误
- qt添加Q_OBJECT报错
- Qt 类中Q_OBJECT的作用及其程序代码体现
- QT中添加Q_OBJECT时编译提示obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const错误解决方法
- Qt中在QMAinWindow内添加layout出现问题
- Qt编程技巧 Q_OBJECT宏的作用
- 【QT】收集Q_OBJECT 是怎样的
- Q_OBJECT问题
- QT中出现的中文乱码问题
- QT中出现的中文乱码问题
- Qt操作数据库中出现的问题
- Java编程中“为了性能”需做的26件事
- k-Nearest Neighbors算法
- XCode 4.3 显示打印控制台
- android 面试题总结
- 【七】WinXP+IIS6 配置Discuz和phpwind论坛全完手册---Discuz_X2.5_SC_GBK安装配置
- QT中添加Q_OBJECT出现的问题
- NPOI开源组件(操作Execl)创建Workbook和Sheet,创建单元格,设置行列样式等
- Android Input System
- jquery对象数组
- 淘宝经典差评中评好评和回复
- 使用VNC实现LINUX与windows的相互远程控制
- 写的比较好的存储过程备份
- Android Bluetooth Data Reception and Sending
- 分享一些C语言的学习资料