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