我正在Qt 5.5与Qt Creator一起工作。 我有一个名为settingsWindow的大类,正如名称所示,它负责各种设置。然后使用这些设置来启动一些QDialog,这些QDialog在qGraphicsView中的场景中显示非常复杂的动画,并通过QCoreApplication :: processEvents()不断更新,这些动画反过来保持GUI的响应。动画是通过QDialog的start()方法启动的。 我想同时运行这些QDialog,例如通过按钮启动,在同一时刻启动所有这些QDialog。我试过使用一个包装器,也就是从QObject继承的一个简单的类,每次将它分配给不同的线程,但是如果我启动一个QDialog,一切正常,当我开始第二个时,第一个“块”(动画停止并且仅在第二个Qdialog中动画可见)。 我唯一的解决方案是为它们中的每一个启动一个单独的QProcess(这样我确信它们分开运行并且位于不同的线程中),但是我需要重写逻辑(每个QDialog的单独程序)。如何在不同线程中同时运行多个QDialog?
任何更简单的解决方案?先谢谢你。
你如何显示对话框?你叫'QDialog :: exec()'? – jpo38
我调用'QDialog :: show()',然后'name_of_the_dialog-> start()',开始动画。 – Michael