我有一堂这样的课

class GUI : public QWidget, public QThread

当我执行上述操作时,我收到有关连接信号的错误。 The error says Reference to "connect" is ambiguous. 。有没有办法同时继承两者?

谢谢

有帮助吗?

解决方案

你不能。两个都 QWidgetQThread (非虚拟地)继承自 QObject. 。因此,您没有虚拟派生,因此有两个副本 QObject, ,这会让编译器感到困惑。 QObject 是专门这样设计的。看:

据称有些人绕过了这个(现在找不到链接,但它在谷歌上,我两周前也遇到了同样的麻烦),但它充其量是不安全的。

编辑:最好的方法可能是让另一个对象继承自 QThread 并将该对象保留为您的成员中的成员 GUI 班级。这是大多数人在这件事上采取的解决方法。

其他提示

QWidgets GUI相关对象CON不会在不同的线程不是应用主线程。你不应该继承他们两个。你不能也称小部件的moveToThread()功能。

您不能从多个的QObject继承。

可以从一个继承和使从那里其他成员变量和工作。

class GUI : public QWidget 
{
  QThread myThread;
};

您已经命名你的类GUI - 这是你的程序的主界面?见Qt的例子例子文件夹 - 它们在两个 GUI示例程序的线程

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top