在 Qt 中,事件過濾器(Event Filter)提供了一種機制,可以攔截并處理對象的事件(如鼠標事件、鍵盤事件等),在事件到達目標對象之前對其進行預處理。事件過濾器通常用于以下場景:
- 捕獲和處理特定的事件(如鼠標點擊、按鍵等);
- 對事件進行篩選或修改;
- 實現全局的事件監聽功能。
一. 事件過濾器的基本原理
-
QObject::installEventFilter(QObject *filterObj)
:- 安裝事件過濾器,將
filterObj
設置為監聽對象的事件過濾器。 filterObj
會接收到此對象的事件,優先于目標對象的默認事件處理。
- 安裝事件過濾器,將
-
QObject::eventFilter(QObject *watched, QEvent *event)
:filterObj
必須重寫此方法?