靚麗時尚館

位置:首頁 > 健康生活 > 心理

qt connect 引數解釋

心理3.22W
qt connect 引數解釋

connect用於連線qt的訊號和槽,在qt程式設計過程中不可或缺。它其實有第五個引數,只是一般使用預設值,在滿足某些特殊需求的時候可能需要手動設定。

Qt::AutoConnection: 預設值,使用這個值則連線型別會在訊號傳送時決定。如果接收者和傳送者在同一個執行緒,則自動使用Qt::DirectConnection型別。如果接收者和傳送者不在一個執行緒,則自動使用Qt::QueuedConnection型別。

Qt::DirectConnection:槽函式會在訊號傳送的時候直接被呼叫,槽函式運行於訊號傳送者所在執行緒。效果看上去就像是直接在訊號傳送位置呼叫了槽函式。這個在多執行緒環境下比較危險,可能會造成奔潰。

Qt::QueuedConnection:槽函式在控制回到接收者所在執行緒的事件迴圈時被呼叫,槽函式運行於訊號接收者所在執行緒。傳送訊號之後,槽函式不會立刻被呼叫,等到接收者的當前函式執行完,進入事件迴圈之後,槽函式才會被呼叫。多執行緒環境下一般用這個。

Qt::BlockingQueuedConnection:槽函式的呼叫時機與Qt::QueuedConnection一致,不過傳送完訊號後傳送者所在執行緒會阻塞,直到槽函式執行完。接收者和傳送者絕對不能在一個執行緒,否則程式會死鎖。在多執行緒間需要同步的場合可能需要這個。

Qt::UniqueConnection:這個flag可以通過按位或(|)與以上四個結合在一起使用。當這個flag設定時,當某個訊號和槽已經連線時,再進行重複的連線就會失敗。也就是避免了重複連線。

標籤:Connect QT 引數