qt的 installEventFilter函数
时间: 2023-07-13 22:15:46 浏览: 61
`installEventFilter` 是 Qt 中的一个函数,用于安装一个事件过滤器。它的作用是将一个 QObject 对象的事件过滤器安装到另一个 QObject 对象上。当被安装的 QObject 对象接收到事件时,该事件将被传递到事件过滤器中进行处理,而不是直接被目标 QObject 对象处理。
具体用法如下:
```cpp
bool QObject::installEventFilter(QObject* filterObj);
```
其中,`filterObj` 参数是事件过滤器对象,需要继承 QObject 类并重写 `eventFilter` 函数。
示例代码:
```cpp
class MyEventFilter : public QObject
{
public:
bool eventFilter(QObject* obj, QEvent* event) override
{
if (event->type() == QEvent::MouseButtonPress)
{
qDebug() << "Mouse button pressed";
return true;
}
return false;
}
};
// 在某个 QObject 对象上安装事件过滤器
QObject* targetObj = new QObject();
MyEventFilter* eventFilter = new MyEventFilter();
targetObj->installEventFilter(eventFilter);
```