Чтобы сделать это с помощью Qt, вам необходимо:
- Создать мьютекс для строковой переменной.
- Создать поток, очевидно.
- СоздатьОбъект QApplication, в этом потоке.(при первом вызове)
- Установите для "setQuitOnLastWindowsClosed" значение false в QApplication.(при первом вызове)
- Создайте диалоговое окно и выполните его "exec".
После возврата из функции "exec" вам необходимо:
- Удалить объект диалога
- Вызвать QApplication :: instance () -> quit ();
- Удалить объект QApplication.
- Завершить поток.
Существует несколько способов обновления данных из основного потока.
Одним из способов будет использование сигналов / слотов с типом подключения в очереди.Используя это, поток пользовательского интерфейса обновляет значение.Ослабление воздействия на основной поток.Однако обратите внимание, что если частота обновления значения слишком высока, например, 2000 раз в секунду, вы можете перейти к опросу значения.Для этого вам может пригодиться QTimer.
Обновление данных в основном потоке должно быть несколько проще, просто заблокируйте мьютекс и вставьте значение.На этом этапе вы можете проверить, является ли значение, которое мы ранее получили из основного потока, текущим значением в основном потоке.Вы заявляли, что это не изменится, но я бы не стал этому доверять:)
Надеюсь, этого достаточно.Мы использовали это для создания диалогового окна ошибки на основе Qt для консольной программы.