从另一个线程打开对话框

时间:2019-05-17 13:42:23

标签: c++ qt

我目前正在开发一个程序,该程序将针对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线程?

0 个答案:

没有答案