• 6186阅读
  • 13回复

关于Q_OBJECT的问题 [复制链接]

上一主题 下一主题
离线wato
 
只看楼主 倒序阅读 楼主  发表于: 2009-07-30

请问在什么情况下用Q_OBJECT宏会提示这个错误:

error: undefined reference to `vtable for myDialog'

但我明明有用信号槽,  注释掉这个宏就正常了  而且connect连接依然有效...
离线sentimental
只看该作者 1楼 发表于: 2009-07-30
你用的qtcreator么?
离线wato
只看该作者 2楼 发表于: 2009-07-30
我在creator上写代码  用终端编译的
离线wato
只看该作者 3楼 发表于: 2009-07-30
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QTextDocument(0x8087d70), parent's thread is QThread(0x804d390), current thread is QThread(0x80a8cc8)

这是我在练习多线程的时候遇到的,希望哪位来深刻的解释下  就这么一句不太能明白
离线dbzhang800

只看该作者 4楼 发表于: 2009-07-30
引用第3楼wato于2009-07-30 15:14发表的  :
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QTextDocument(0x8087d70), parent's thread is QThread(0x804d390), current thread is QThread(0x80a8cc8)
这是我在练习多线程的时候遇到的,希望哪位来深刻的解释下  就这么一句不太能明白


QObject 的子对象必须在它的父对象的线程中创建!

这是QObject的一个约束条件
离线allblue

只看该作者 5楼 发表于: 2009-07-30
我认为,不写Q_OBJECT宏,qt不进行元语编译,从而qt的相关特性也不能够使用,而楼主还能够使用信号和槽,我觉得不可思议。
黑暗魔法
离线20044454
只看该作者 6楼 发表于: 2009-07-30
同意楼上,记得都是没有 才出现这个提示的
让我做一个Qt的大牛!!!!
离线sentimental
只看该作者 7楼 发表于: 2009-07-31
qtcreator有点问题, 你把project clear一下 重启qt creator 然后编译下看看
离线wato
只看该作者 8楼 发表于: 2009-07-31
引用第5楼allblue于2009-07-30 20:12发表的  :
我认为,不写Q_OBJECT宏,qt不进行元语编译,从而qt的相关特性也不能够使用,而楼主还能够使用信号和槽,我觉得不可思议。



我自己也觉得不可思议  然后在别的程序里试试就正常的

但在这里  删了这个宏照样连接正常  不删就报那个错误...
离线sentimental
只看该作者 9楼 发表于: 2009-07-31
我觉得在windows下用vs比用mingw 好 ,  最大的优点就是编译调试的速度。
离线wato
只看该作者 10楼 发表于: 2009-07-31
我是在练习多线程的时候碰到这个问题的   昨天一恼火把那几个线程的类删了  一切正常了
离线allblue

只看该作者 11楼 发表于: 2009-07-31
哈哈
黑暗魔法
离线jpchen609
只看该作者 12楼 发表于: 2009-07-31
其实很简单,把Makefile删了再重新编译
我喜欢,我个性
离线wato
只看该作者 13楼 发表于: 2009-07-31
引用第12楼jpchen609于2009-07-31 11:38发表的  :
其实很简单,把Makefile删了再重新编译


我试过的  能删的全删  好像不行

现在现场已被损毁  无法重新实验了...
快速回复
限100 字节
 
上一个 下一个