中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

QT學習小結之信號與槽

發布時間:2020-07-23 11:10:29 來源:網絡 閱讀:437 作者:zgz_ 欄目:編程語言

信號與槽函數是我們學習QT必備的基礎知識,今天跟大家分享我學習QT的一些總結吧。

信號槽機制是Qt編程的基礎。通過信號槽,能夠使Qt各組件在不知道對方的情形下能夠相互通訊。

槽函數和普通的C++成員函數沒有很大的區別。它們也可以使virtual的;可以被重寫;可以使public、protected或者private的;可以由其它的C++函數調用;參數可以是任何類型的。如果要說區別,那就是,槽函數可以和一個信號相連接,當這個信號發生時,它可以被自動調用。

信號與槽函數的連接我們可以用connect函數:

connect(sender,SIGNAL(signal()),receive,SLOT(slot()));

需要注意的幾點問題:

1、一個信號可以和多個槽相連(槽函數被調用的順序是隨機的)

connect(sender,SIGNAL(signal()),this,SLOT(slot_1()));connect(sender,SIGNAL(signal()),this,SLOT(slot_2()));

2、多個信號可以連接同一個槽函數

connect(sender,SIGNAL(signal_1()),this,SLOT(slot()));connect(sender,SIGNAL(signal_2()),this,SLOT(slot()));

3、一個信號可以連接另外一個信號

connect(sender,SIGNAL(signal_1()),this,SIGNAL(signal_2()));

4、信號與槽函數之間的連接可以被取消

disconnect(sender,SIGNAL(signal()),this,SLOT(slot()));

5、信號與槽函數的參數個數、類型以及出現順序必須一致,另外,當信號的參數個數多于槽函數時,信號多出的參數將會被忽略掉

connect(sender,SIGNAL(signal(int,const Qstring &)),this,SLOT(slot(int b,const Qstring &)));connect(sender,SIGNAL(signal(int,const  Qstring &)),this,SLOT(slot(int)));//此時const  Qstring &將會被忽略

6、宏定義不能用在signal和slot的參數中

7、函數指針不能作為信號與槽函數的參數,同時信號與槽函數也不能有缺省參數


8、友元聲明不能位于信號或槽函數聲明區內


9、信號與槽不能攜帶模板類參數


10、嵌套的類不能位于信號與槽函數區域內,也不能有信號或者槽函數


在使用信號與槽機制的時候,要注意避免陷入死循環,即在槽函數中再次發送所接收到的信號。



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郁南县| 分宜县| 临武县| 肥城市| 三台县| 大方县| 云浮市| 济宁市| 宁强县| 建瓯市| 武安市| 永平县| 龙海市| 江口县| 潞城市| 新蔡县| 宽甸| 胶南市| 贺兰县| 怀集县| 汝南县| 安龙县| 芮城县| 北宁市| 广德县| 洪江市| 商南县| 浪卡子县| 时尚| 潼关县| 金昌市| 吴忠市| 黄平县| 松阳县| 辽阳县| 石泉县| 菏泽市| 遂溪县| 宁德市| 江城| 临泉县|