1.事件过滤器
void QObject::installEventFilter(QObject *filterObj)
bool eventFilter(QObject *obj, QEvent *event);
Qt的事件过滤由以上两个方法实现,首先安装一个事件过滤器,然后重写bool eventFilter(QObject *obj, QEvent *event)。
filterObj表示事件筛选器对象,它接收发送到此QObject对象的所有事件。筛选器可以停止事件,也可以将事件转发给此QObject对象。事件过滤器filterObj通过它的eventFilter()函数接收事件。
eventFilter()有返回值。
- 如果返回true,表示事件过滤,不会发送到对象本身。
- 如果返回false,表示事件未过滤,会通过event()方法将事件分发到对象。
- 返回给基类进行处理,例:return QObject::eventFilter(obj, event)。
2.示例
一个label,当鼠标进入的时候变成红色,鼠标离开的时候变为黑色
#include "widget.h"
#include "ui_widget.h"
QS