Qt學習筆記 訊號與槽

2021-07-15 04:54:32 字數 834 閱讀 5697

訊號和槽用於兩個物件之間的通訊,是qt的核心特徵和突出特徵。

當乙個特殊的事件發生時,相關物件便會發出乙個訊號,比如單擊滑鼠、按鍵等。

槽就是乙個函式,用來響應訊號,可以自定義或者使用已存在的函式。

訊號和槽的對應關係:乙個訊號何以關聯到多個槽,乙個槽也可以關聯多個訊號,甚至乙個訊號也可以關聯到另乙個訊號上面。如果有乙個訊號關聯到了多個槽,當訊號發出時,這些槽會乙個接乙個地執行,但是執行的順序是不確定的。

關聯訊號和槽:使用connect函式關聯訊號和槽。connect函式是qobject類的成員,原型如下:

qmetaobject::connection qobject::connect(const qobject * sender, const char * signal, const qobject * receiver, const char * method, qt::connectiontype type = qt::autoconnection)

connect函式使用舉例:connect(sndobj,signal(signal(arg....)),rcvobj,slot(rcvfun(arg...)));

注意:一、訊號和槽必須使用signal和slot巨集,這兩個巨集可以將訊號和槽轉換成const char *型別

二、訊號和槽的引數:原則上,訊號和槽中的引數型別應該相對應,訊號中的引數個數不能少於槽的引數個數,多出的引數將被忽略。

三、最後乙個引數,一般取預設值。各引數如下圖:

QT學習筆記(2) 訊號與槽

1 moc 元物件 系統簡介 在 qt 助手的索引裡面輸入 the meta object system 就可以看到元物件系統的英文文件。現在將其主要的內容描述如下 qt 元物件系統實現了物件之間通訊機制 訊號和槽,並提供了執行時型別資訊和動態屬性系統。元物件系統是 qt 類庫獨有的功能,是 qt ...

QT學習 訊號與槽

最近在學習qt訊號與槽。先看看我自己寫的乙個demo.這個demo沒有窗體。在qt creator中新建乙個 空的qt專案 pro檔案如下 templateheaders mysignal.h myslot.hsources mysignal.cpp myslot.cpp main.cpp包含三個c...

QT學習筆記 5 訊號槽

模態對話方塊 相當於在已經開啟乙個對話方塊1的前提下,開啟對話方塊2,這時,是無法操作對話方塊1的。非模態對話方塊則相反。若要處理訊號的時候,記得在.pro檔案上面加上 config c 11模態對話方塊與非模態對話方塊的區別主要是在於 模態 qdialog dlg dlg.exec exec 執行...