QObject 類是Qt 全部類的基類。函數
QObject是Qt對象模型的核心。這個模型的中心要素就是一種強大的叫作信號與槽無縫對象溝通機制。你能夠用 connect()函數來把一個信號鏈接到槽,也能夠用disconnect()函數來破壞這個鏈接。爲了不永無止境的通知循環,你能夠用blockSignal()函數來暫時阻塞信號。保護函數對象
connectNotify()和disconnectNotify()能夠用來跟蹤鏈接。繼承
對象樹都是經過QObject 組織起來的,當以一個對象做爲父類建立一個新的對象時,這個新對象會被自動加入到父類的 children() 隊列中。這個父類有子類的全部權。可以在父類的析構函數中自動刪除子類。能夠經過findChild()和findChildren()函數來尋找子類。隊列
每一個對象都一個對象名稱objectName(),並且它的類名也能夠經過metaObject()函數。你能夠經過inherits()函數來決定一個類是否繼承其餘的類。當一個對象被刪除時,它會發射destory()信號.你能夠抓住這個信號避免某些事情。事件
對象能夠經過event()函數來接收事情以及過濾來自其餘對象的事件。就比如installEventFiter()函數和eventFilter()函數。childEvent()函數可以重載實現子對象的事件。get
QObject還提供了基本的時間支持,QTimer類 提升了更高層次的時間支持。編譯器
任何對象要實現信號與槽機制,Q_OBJECT 宏都是強制的。你也須要在源原件上運行元對象編譯器。無論是否真正用到信號與槽機制,最好在全部QObject子類使用Q_OBJECT宏,以免出現一些沒必要要的錯誤。it
全部的Qt widgets 都是基礎QObject。若是一個對象是widget,那麼isWidgetType()函數就能判斷出。編譯