Открыть диалог из другого потока - PullRequest
0 голосов
/ 17 мая 2019

В настоящее время я разрабатываю программу, которая будет запускать тесты на устройстве Phabrix SX.Эти тесты выполняются в другом потоке, чтобы предотвратить зависание графического интерфейса.Теперь у меня возникла проблема с созданием графического интерфейса в рабочем потоке, и я действительно не знаю, как с ним справиться.

Мне нужно открывать различные виды диалогов (QMessageBox, QInputDialog и т. Д.) Из отдельногорабочая нить.Например, мне нужно ввести серийный номер для одного из тестов, и я хочу сделать это с помощью QInputDialog.Если я попытаюсь создать и выполнить диалоговое окно в рабочем потоке, то произойдет сбой программы (потому что он не работает в потоке графического интерфейса).

  try
  {
      PhTResult result = test->run();
      emit sequenceFinished(sequenceCounter, result);
  }
  catch (PhabrixExceptions::PhEConnectionFailure e)
  {
      QMessageBox messageBox;
      messageBox.setText(e.what());
      messageBox.exec();
  }

Я хочу создать диалог через рабочий поток и отобразить его пользователю.Есть ли способ создать графический интерфейс в другом потоке и отправить его в основной поток графического интерфейса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...