我目前正在开发一个程序,该程序将针对Phabrix SX单元运行测试。这些测试在不同的线程中运行,以防止GUI挂起。我现在在工作线程中创建GUI时遇到问题,我真的不知道该如何解决。
我需要从单独的工作线程中打开不同类型的对话框(QMessageBox,QInputDialog等)。例如,我需要输入其中一个测试的序列号,并想使用QInputDialog进行。如果我尝试在工作线程中创建并执行对话框,则程序将崩溃(因为它未在GUI线程中运行)。
try
{
PhTResult result = test->run();
emit sequenceFinished(sequenceCounter, result);
}
catch (PhabrixExceptions::PhEConnectionFailure e)
{
QMessageBox messageBox;
messageBox.setText(e.what());
messageBox.exec();
}
我想能够通过工作线程创建对话框并将其显示给用户。有什么方法可以在另一个线程中创建GUI并将其发送到主GUI线程?