我有一个应用程序,其中每个线程(除了主线程)都需要创建自己的窗口。我尝试创建一个线程,然后在run函数中调用this->exec()。然而,我甚至在调用之前就得到了一个错误:ASSERT failure in QWidget: "Widgets must be created in the GUI thread."问题是源有多个线程,每个线程可能需要弹出自己的消息。
所以Qt必须让所有的GUI应用程序都在主GUI线程中运行。我有一个启动QDialog的非gui,当我尝试与这个小部件交互时,我得到了QObject::startTimer: Timers cannot be started from another thread这导致我发现,我需要将小部件移动到主线程。我的问题是如何将no_id_wheel_screen移到主线程。非gui
我有一个简单的服务器-客户端聊天程序,其中我使用线程在后台从服务器接收数据。问题是当客户端收到一条消息时,必须为聊天创建一个新的选项卡。但是我在线程中接收数据,所以我可以检查数据并在线程中创建数据。只是我不能创建一个小部件并将它的父窗口设置为我的窗口,因为我的窗口在主线程中。所以看起来是这样的: class MainWindow(QWidget):
...