信號(hào)與槽函數(shù)是我們學(xué)習(xí)QT必備的基礎(chǔ)知識(shí),今天跟大家分享我學(xué)習(xí)QT的一些總結(jié)吧。
信號(hào)槽機(jī)制是Qt編程的基礎(chǔ)。通過(guò)信號(hào)槽,能夠使Qt各組件在不知道對(duì)方的情形下能夠相互通訊。
槽函數(shù)和普通的C++成員函數(shù)沒(méi)有很大的區(qū)別。它們也可以使virtual的;可以被重寫(xiě);可以使public、protected或者private的;可以由其它的C++函數(shù)調(diào)用;參數(shù)可以是任何類(lèi)型的。如果要說(shuō)區(qū)別,那就是,槽函數(shù)可以和一個(gè)信號(hào)相連接,當(dāng)這個(gè)信號(hào)發(fā)生時(shí),它可以被自動(dòng)調(diào)用。
信號(hào)與槽函數(shù)的連接我們可以用connect函數(shù):
connect(sender,SIGNAL(signal()),receive,SLOT(slot()));
需要注意的幾點(diǎn)問(wèn)題:
1、一個(gè)信號(hào)可以和多個(gè)槽相連(槽函數(shù)被調(diào)用的順序是隨機(jī)的)
connect(sender,SIGNAL(signal()),this,SLOT(slot_1()));connect(sender,SIGNAL(signal()),this,SLOT(slot_2()));
2、多個(gè)信號(hào)可以連接同一個(gè)槽函數(shù)
connect(sender,SIGNAL(signal_1()),this,SLOT(slot()));connect(sender,SIGNAL(signal_2()),this,SLOT(slot()));
3、一個(gè)信號(hào)可以連接另外一個(gè)信號(hào)
connect(sender,SIGNAL(signal_1()),this,SIGNAL(signal_2()));
4、信號(hào)與槽函數(shù)之間的連接可以被取消
disconnect(sender,SIGNAL(signal()),this,SLOT(slot()));
5、信號(hào)與槽函數(shù)的參數(shù)個(gè)數(shù)、類(lèi)型以及出現(xiàn)順序必須一致,另外,當(dāng)信號(hào)的參數(shù)個(gè)數(shù)多于槽函數(shù)時(shí),信號(hào)多出的參數(shù)將會(huì)被忽略掉
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)));//此時(shí)const Qstring &將會(huì)被忽略
6、宏定義不能用在signal和slot的參數(shù)中
7、函數(shù)指針不能作為信號(hào)與槽函數(shù)的參數(shù),同時(shí)信號(hào)與槽函數(shù)也不能有缺省參數(shù)
8、友元聲明不能位于信號(hào)或槽函數(shù)聲明區(qū)內(nèi)
9、信號(hào)與槽不能攜帶模板類(lèi)參數(shù)
10、嵌套的類(lèi)不能位于信號(hào)與槽函數(shù)區(qū)域內(nèi),也不能有信號(hào)或者槽函數(shù)
在使用信號(hào)與槽機(jī)制的時(shí)候,要注意避免陷入死循環(huán),即在槽函數(shù)中再次發(fā)送所接收到的信號(hào)。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專(zhuān)業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。
新聞標(biāo)題:QT學(xué)習(xí)小結(jié)之信號(hào)與槽-創(chuàng)新互聯(lián)
文章路徑:http://chinadenli.net/article34/djggse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、微信公眾號(hào)、網(wǎng)站設(shè)計(jì)公司、軟件開(kāi)發(fā)、關(guān)鍵詞優(yōu)化、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容