在 Qt 中,事件过滤器(Event Filter)提供了一种机制,可以拦截并处理对象的事件(如鼠标事件、键盘事件等),在事件到达目标对象之前对其进行预处理。事件过滤器通常用于以下场景:
- 捕获和处理特定的事件(如鼠标点击、按键等);
- 对事件进行筛选或修改;
- 实现全局的事件监听功能。
一. 事件过滤器的基本原理
-
QObject::installEventFilter(QObject *filterObj)
:- 安装事件过滤器,将
filterObj
设置为监听对象的事件过滤器。 filterObj
会接收到此对象的事件,优先于目标对象的默认事件处理。
- 安装事件过滤器,将
-
QObject::eventFilter(QObject *watched, QEvent *event)
:filterObj
必须重写此方法ÿ