更新時(shí)間:2020年06月15日14時(shí)23分 來源:黑馬程序員 瀏覽次數(shù):
Qt中信號槽的優(yōu)勢有哪些?
答:
a. 類型的安全的, 體現(xiàn)在以下兩個(gè)方面:
- 信號和接收該信號的槽的參數(shù)類型要相同, 一一對應(yīng), 否則編譯器會報(bào)錯(cuò)
- 槽的參數(shù)個(gè)數(shù)是可以少于或等于信號的參數(shù)個(gè)數(shù)的,但缺少的參數(shù)必須是信號參數(shù)的最后一個(gè)或幾個(gè)參數(shù)。
b. 發(fā)信號的對象和處理信號的對象耦合度低:
- 激發(fā)信號的對象:
- 無需知道是哪個(gè)對象的哪個(gè)槽需要接收它發(fā)出的信號
- 只需在適當(dāng)?shù)臅r(shí)間發(fā)送適當(dāng)?shù)男盘柧涂梢粤?/span>
- 不需要知道也不關(guān)心它的信號有沒有被接收到,更不需要知道是哪個(gè)對象的哪個(gè)槽收到了信號
- 處理信號的對象
- 對象的槽不知道是哪些信號關(guān)聯(lián)了自己
- 一旦對象的槽函數(shù)和信號進(jìn)行了關(guān)聯(lián),Qt就會保證適合的槽被調(diào)用
- 關(guān)聯(lián)槽函數(shù)的對象在運(yùn)行時(shí)被刪除,應(yīng)用程序也不會崩潰。
c. 信號和槽機(jī)制增強(qiáng)了對象間通信的靈活性:
- 一個(gè)信號可以關(guān)聯(lián)多個(gè)槽
- 多個(gè)信號可以關(guān)聯(lián)一個(gè)槽。
推薦了解傳智播客C++培訓(xùn)課程。
北京校區(qū)