• 7409阅读
  • 7回复

【提问】Q_OBJECT的问题? [复制链接]

上一主题 下一主题
离线angusliu
 

只看楼主 倒序阅读 楼主  发表于: 2005-09-06
Q_OBJECT是不是只能加在头文件里,也就是说moc是通过读取程序头文件并产生支持信号与槽机制的代码?

我用qt for window,碰到一个奇怪的问题
我把类的定义放在cpp文件里时,当加入Q_OBJECT时,编译有很多错误
但我把类的声明放在头文件里时,加入Q_OBJECT,编译OK
[ 此贴被XChinux在2005-09-06 13:36重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2005-09-06
对,放在头文件里,它要在那里进行处理那些slot, signal这些特殊标记的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线gongyh

只看该作者 2楼 发表于: 2005-09-07
不一定吧,放到定义的最前面就可以了吧,如果我只有一个cpp文件,不是不能用了吗,
所有不一定要放到头文件中。定义类的时候在前面加,类的定义不一定要加到头文件中

All classes that contain signals or slots must mention Q_OBJECT at the top of their declaration. They must also derive (directly or indirectly) from QObject.
打工不是一辈子的事!
离线amscheng
只看该作者 3楼 发表于: 2008-07-01
为什么我的放在头文件中都有类似的错误啊?编译器是codeblock
离线foxyz

只看该作者 4楼 发表于: 2008-07-01
这个宏一般要放在类的定义里,而类的定义一般在头文件里.我还没有听说放在cpp里的,因为,用到这个宏的类必须是QOBJECT的子类。
离线mumutouv

只看该作者 5楼 发表于: 2008-07-02
如果说 Q_OBJECT定义在cpp文件中的话,那么在cpp文件中需要加入#include "moc_XXXXX.h"文件还是"moc_XXXXX.cpp",具体有点忘了,一般都定义在h文件,只有一些很老的代码才写在cpp文件中
离线浪漫天使
只看该作者 6楼 发表于: 2008-07-02
以后 相关的问题 能不能把自己用的qt的版本说一下,这样会好一点吧
离线mumutouv

只看该作者 7楼 发表于: 2008-07-02
我的是Qt4.3.3版本
快速回复
限100 字节
 
上一个 下一个