У меня есть приложение Qt / C ++ с обычным потоком графического интерфейса и сетевым потоком. Сетевой поток использует внешнюю библиотеку, которая имеет свой собственный цикл событий на основе select () ... поэтому сетевой поток не использует систему событий Qt.
В данный момент сетевой поток просто излучает сигналы () при возникновении различных событий, таких как успешное соединение. Я думаю, что это работает хорошо, так как механизм сигналов / слотов правильно отправляет сигналы для потока GUI.
Теперь мне нужно, чтобы сетевой поток мог вызывать поток графического интерфейса и задавать вопросы. Например, сетевой поток может потребовать, чтобы поток графического интерфейса потребовал выставить диалоговое окно, чтобы запросить пароль.
Кто-нибудь знает подходящий механизм для этого?
Моя лучшая идея на данный момент - заставить сетевой поток ждать с использованием QWaitCondition после генерации объекта (emit passwordRequestedEvent(passwordRequest);
. Объект passwordRequest будет иметь указатель на конкретное QWaitCondition и поэтому может сигнализировать об этом, когда решение принято ..
Разве это разумно? или есть другой вариант?