Qt::QObject類


  QObject 類是Qt 所有類的基類。

  QObject是Qt對象模型的核心。這個模型的中心要素就是一種強大的叫做信號與槽無縫對象溝通機制。你可以用 connect()函數來把一個信號連接到槽,也可以用disconnect()函數來破壞這個連接。為了避免永無止境的通知循環,你可以用blockSignal()函數來暫時阻塞信號。保護函數

connectNotify()和disconnectNotify()可以用來跟蹤連接。

  對象樹都是通過QObject 組織起來的,當以一個對象作為父類創建一個新的對象時,這個新對象會被自動加入到父類的 children() 隊列中。這個父類有子類的所有權。能夠在父類的析構函數中自動刪除子類。可以通過findChild()和findChildren()函數來尋找子類。

  每個對象都一個對象名稱objectName(),而且它的類名也可以通過metaObject()函數。你可以通過inherits()函數來決定一個類是否繼承其他的類。當一個對象被刪除時,它會發射destory()信號.你可以抓住這個信號避免某些事情。

  對象可以通過event()函數來接收事情以及過濾來自其他對象的事件。就好比installEventFiter()函數和eventFilter()函數。childEvent()函數能夠重載實現子對象的事件。

  QObject還提供了基本的時間支持,QTimer類 提高了更高層次的時間支持。

  任何對象要實現信號與槽機制,Q_OBJECT 宏都是強制的。你也需要在源原件上運行元對象編譯器。不管是否真正用到信號與槽機制,最好在所有QObject子類使用Q_OBJECT宏,以避免出現一些不必要的錯誤。

  所有的Qt widgets 都是基礎QObject。如果一個對象是widget,那么isWidgetType()函數就能判斷出。


免責聲明!

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



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