Qt工作筆記 訊號與槽引數匹配問題

2021-08-17 16:23:41 字數 704 閱讀 5452

今天,我把qt3**轉化為qt5,控制項啥的都要換,李主任說了下為什麼以前的訊號和槽函式引數不匹配!!這句話讓我對qt中的訊號與槽進一步有了了解。

下面的這個演示原始碼是基於這個部落格的

如下面這個訊號與槽

可以看到沒有報錯,signal有1個引數(從文件裡面可以知道這個引數是我們輸入的文字內容),而slot乙個引數也沒有。

我們現在在slot中的那個btnisenable增加乙個引數獲取這個輸入的資料。

如下圖(widget.h裡面的定義已經改好了):

從中可以知道當訊號與槽引數為1對1的時候,不會報錯,並且,槽函式定義的那個qstring正好獲取了那個訊號的引數。

下面來看當signal的引數小於slot的引數時,如下圖(widget.h已經修改):

從中我們可以看到,報了訊號與槽的錯誤,沒有匹配到signal,因為signal就乙個引數,而slot有二個引數,當然匹配不到。

今天學到的東西,讓我受益匪淺,雖然是很基礎的東西。

Qt學習筆記 訊號與槽

訊號和槽用於兩個物件之間的通訊,是qt的核心特徵和突出特徵。當乙個特殊的事件發生時,相關物件便會發出乙個訊號,比如單擊滑鼠 按鍵等。槽就是乙個函式,用來響應訊號,可以自定義或者使用已存在的函式。訊號和槽的對應關係 乙個訊號何以關聯到多個槽,乙個槽也可以關聯多個訊號,甚至乙個訊號也可以關聯到另乙個訊號...

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

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

Qt5教程 4 帶引數訊號與槽

在subwidget.h中宣告乙個signal.和之前的訊號函式重名但是有引數 void backsignal qstring 之後在subwidget.cpp的槽函式sendsignal 中也傳送該訊號 emit backsignal 子視窗請求返回 在mainwidget.h中宣告乙個槽函式來響...