QT類 QEvent 參考手冊
Qt的主事件回路(QApplication::exec())從事件隊列里取得本地窗口系統事件,并把它們轉換為QEvent并且把這些轉換過的事件發給QObject。
通常情況下,來自于窗口系統的事件(spontaneous()返回真),但是它也可以使用QApplication::sendEvent()和QApplication::postEvent()手動發送事件(spontaneous()返回假)。
QObject通過它們的QObject::event()函數調用來接收事件。這個函數可以在子類中重新實現來處理自定義的事件和添加額外的事件類型,QWidget::event()就是一個著名的例子。默認情況下,像QObject::timerEvent()和QWidget::mouseMoveEvent()這樣的事件可以被發送給事件處理函數。QObject::installEventFilter()允許一個對象中途截取發往另一個對象的事件。
基本的QEvent只包含了一個事件類型參數。QEvent的子類包含了額外的描述特定事件的參數。
QEvent 類參考手冊
- [QtCore module]
QEvent 類是所有 event 類的基類. Event 對象包含了 event 的參數. 更多...
- #include <QEvent>
詳細描述
QEvent 類是所有 event 類的基類. Event 對象包含了 event 的參數. 更多...
Qt 的主 event loop (QCoreApplication::exec()) 從 event queue 中取出 native 的窗口系統的所有 event , 然后把它們轉換成 QEvents, 并將轉換過的 event 發送到相應的 QObject 中.
通常, event 由底層的窗口系統 ( 可以通過調用 event 的 spontaneous() 并根據其返回值來是否為 true 來判斷 ) 發送, 但是也可以調用 QCoreApplication::sendEvent() 或者QCoreApplication::postEvent() (spontaneous() 返回 false ) 來手動的發送指定的事件。
QObjects 通過調用自身的 QObject::event() 函數來查收事件. 可以在子類中重寫該函數來定制處理事件,以及添加程序員實現的事件類型; QWidget::event() 就是這樣一個著名的例子。默認情況下, event 被發送到諸如 QObject::timerEvent() 以及 QWidget::mouseMoveEvent() 之類的 event 處理函數 .
QObject::installEventFilter() 方法允許攔截發往指定對象的事件。
基礎的 QEvent 只包含一個事件類型參數以及一個 "accept" 標志. 該 accept 標志通過調用事件的 accept() 方法來置位 , 以及通過調用事件的 ignore() 方法來清空. 默認情況是置位的, 注意不要依賴這個條件,因為在其子類的 constructor 中程序員可以選擇清空該標志.
派生的 QEvent 子類包含描述該特定 event 的其它參數.
參考 QObject::event(), QObject::installEventFilter(), QWidget::event(), QCoreApplication::sendEvent(), QCoreApplication::postEvent(), 以及 QCoreApplication::processEvents().
小結:關于QT類 QEvent 參考手冊 的內容介紹完了,希望本文對你有所幫助!更多相關內容請參考編輯推薦。