詳解 QT Event 以及 Event Filter 事件處理

QT Event 以及 Event Filter 事件處理是本文要介紹的內容,詳細內容如下,先來看內容。Event 和 Event Filters:

1、手動發送事件流程:

(1)構造自己的事件對象:

 
  1. QEvent *evt = new QEvent( QEvent::Close  );  

(2)發送給指定的對象:

 
  1. 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 在典型應用程序中是如何發送及處理的.

 
  1. How Events are Delive
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章