QT Event 以及 Event Filter 事件處理是本文要介紹的內容,詳細內容如下,先來看內容。Event 和 Event Filters:
1、手動發送事件流程:
(1)構造自己的事件對象:
- QEvent *evt = new QEvent( QEvent::Close );
(2)發送給指定的對象:
- QApplication::sendEvent(this, evt );
2、定製某個控件的事件處理:
(1)確定需要對哪些控件的哪些事件, 通常的 close以及 key 和 keyboard 事件;
(2)重寫該對象的 event() 函數;
3、事件過濾流程:
(1)確定自己需要過濾處理哪些對象的那些事件;
(2)構造自己的事件過濾類: 重寫該類的 eventFilter 函數;
(3)在主程序中實例化一個過濾類對象;
(4)調用該過濾類對象的 installEventFilter( receiver, QEvent *event),
以在目標對象上安裝該過濾器。
在 Qt 中, event 被建模成派生自abstract QEvent 類的對象, 用來表示在應用程序中發生的事件,或是應用程序需要處理的外部活動產生的事件.
Events 可以被任一 QObject 派生的子類實例對象接收和處理, 但他們是關聯到特定控件的. 本文檔描述 event 在典型應用程序中是如何發送及處理的.
- How Events are Delive