4
我有一個Qt/C++應用程序,通常的GUI線程和一個網絡線程。網絡線程正在使用一個外部庫,它有自己的基於select()的事件循環...所以網絡線程沒有使用Qt的事件系統。Qt跨線程調用
目前,網絡線程只是在發生各種事件(如連接成功)時發出()s信號。我認爲這可以正常工作,因爲信號/插槽機制正確地爲GUI線程發佈信號。
現在,我需要網絡線程能夠調用GUI線程來提出問題。例如,網絡線程可能要求GUI線程請求建立一個對話框來請求密碼。
有沒有人知道這樣做的適當機制?
我現在最好的想法是讓網絡線程在發送一個對象後使用QWaitCondition等待(emit passwordRequestedEvent(passwordRequest);
。passwordRequest對象將在特定的QWaitCondition上有一個句柄,所以可以在做出決定時發出信號。 。
是這種明智的做法?還是有其他的選擇嗎?