Qt ------ 覆蓋eventFilter(),捕獲組件事件,事件處理


在Qt中,當一個事件發生時(例如鼠標點擊或某個鍵盤上的按鍵按下),其傳遞順序如圖所示。從這個圖可以看出,事件過濾器首先獲得事件,其次才是部件的 event 函數,最后是部件的事件處理函數

 

事件過濾器由QObject類中的兩個函數來實現。

一個是 installEventFilter,它負責在相應部件上安裝事件過濾器,其聲明為:

void QObject::installEventFilter(QObject *filterObj);

其中,filterObj參數表示要在其上實現事件過濾器函數的部件。請注意,如果我們在一個部件安裝了事件過濾器,一般在其父控件上實現事件過濾器函數。

 

第二個函數是 eventFilter 函數,我們在此函數中實現事件過濾器。請注意:該函數在 QObject 類中聲明為一個虛函數,因此只能由 QObject 的子類繼承使用

 

 

 

例子:

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM