我有这样的课程
class GUI : public QWidget, public QThread
当我执行上述操作时,我会收到有关连接信号的错误。 The error says Reference to "connect" is ambiguous
。有没有办法继承两者?
谢谢
答案 0 :(得分:11)
你做不到。 QWidget
和QThread
都从QObject
继承(非虚拟)。因此,您没有虚拟派生,因此QObject
的两个副本会混淆编译器。 QObject
是专门为此设计的。参见:
有些人据称解决了这个问题(目前无法找到链接,但是它出现在Google上,两周前我遇到了同样的麻烦),但最多也是不安全的。
编辑:最好的方法可能是让另一个对象从QThread继承并将该对象保留为GUI
类中的成员。这就是大多数人在这件事上所采取的一种解决方法。
答案 1 :(得分:0)
QWidgets
与GUI相关的对象不在与应用程序主线程不同的线程中。你不应该继承它们。您也不能调用小部件的moveToThread()
功能。
答案 2 :(得分:-1)