QT訊號與槽的連線方式

2021-09-19 16:04:35 字數 796 閱讀 1108

一.qt::autoconnection

qt::autoconnection表示系統自動選擇相應的連線方式,如果訊號與槽在同一執行緒,就採用qt::directconnection, 

如果訊號與槽不在同一執行緒,將採用qt::queuedconnection的連線方式。    

二.qt::directconnection

qt::directconnection表示一旦訊號產生,立即執行槽函式。   (主線程傳送訊號給子執行緒,connect 在子執行緒中 ,則這個引數要使用  qt::directconnection ,槽函式在子執行緒中立即執行)

三.qt::queuedconnection

qt::queuedconnection表示訊號產生後,將傳送event給你的receiver所在的執行緒,postevent(qevent::metacall,...), 

slot函式會在receiver所在的執行緒的event loop中進行處理。

四. qt::blockingqueuedconnection

qt::blockingqueuedconnection表示訊號產生後呼叫sendevent(qevent::metacall,...), 

在receiver所在的執行緒處理完成後才會返回;只能當sender,receiver不在同一執行緒時才可以。  

五.   qt::uniqueconnection

Qt訊號與槽連線

connect pointer1,pointer2,pointer3,pointer4 pointer1 指向傳送訊號的物件的指標 pointer2 傳送訊號的物件所對應的類的成員函式的指標 pointer3 接收訊號的物件的指標 pointer4 接收訊號的物件所對應物件的槽函式指標 總結下來就是...

Qt訊號與槽的五種連線方式

qt訊號與槽的五種連線方式 1.預設連線 如果是在同一執行緒等價於直連,在不同執行緒等價於佇列連線 2.直連 訊號在哪,在哪個執行緒執行 最好只在同一執行緒中用 3.佇列連線 槽在哪就在哪個執行緒執行 槽函式不會立刻執行,等到接受者的當前執行的函式執行完才會執行槽函式 4.阻塞佇列連線 槽函式呼叫時...

qt過載訊號槽連線方式總結

一 qt4方式 qobject connect 訊號發出者位址,signal 訊號發出者函式名稱 訊號發出者函式引數.訊號接收者位址,slot 訊號接收者槽函式名稱 訊號接收者槽函式引數.注意 若在qobject子類內部定義訊號槽,可直接呼叫connect函式。二 qt5方式 1 普通訊號 qobj...