Qt 信號和槽機制的優缺點


一、信號和槽機制

Qt提供了信號和槽機制用於完成界面操作的響應,是完成任意兩個Qt對象之間的通信機制。
其中,信號會在某個特定情況或動作下被觸發,槽是等同於接收並處理信號的函數。

二、信號和槽機制的優點

1、類型安全。需要關聯的信號和槽的簽名必須是等同。
即信號的參數類型和參數個數 同接收該信號的槽的參數類型和參數個數相同。

2、松散耦合。信號和槽機制減弱了Qt對象的耦合度。
激發信號的Qt對象無須知道是哪個對象的哪個槽需要接收它發出的信號,它只需要做的是在適當的時間發送適當的信號就可以了,而不需要知道也不關心它的信號有沒有被接收到,更不需要知道哪個對象的哪個槽接收到了信號。
同樣地,對象的槽也不知道是哪些信號關聯了自己,而一旦關聯信號和槽,Qt就保證了適合的槽得到了調用。即使關聯的對象在運行時被刪除。應用程序也不會崩潰。

三、信號和槽的效率

信號和槽機制增強了對象間通信的靈活性,然而這也損失了一些性能。同回調函數相比,信號和槽機制運行速度有些慢。通常,通過傳遞一個信號來調用槽函數將會比直接調用直接調用非虛函數運行速度慢10倍。原因如下。
1)需要定位接收信號的對象。
2)安全地遍歷所有的關聯。
3)編組/解組傳遞的參數。
4)多線程的時候。信號可能需要排隊等待。

參考:
優點

優缺點


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM