10.Qt自定义事件过滤器
Qt自定义事件过滤器
qt中有很多的事件,不是所有的事件都有重写,我们可以通过事件过滤器捕捉到我们需要的事件进行处理。
1、重写eventFilter函数
widget.h,可以是其他的类,或自己创建的类
class Widget : public QWidget
{
public:
bool eventFilter(QObject *watched, QEvent *event);//重写的过滤器
}
2、实现过滤器对应的业务
widget.cpp
bool Widget::eventFilter(QObject *watched, QEvent *event)
{
if(event->type() == QEvent::Wheel)//捕获鼠标滚轮事件
{
if(QGuiApplication::keyboardModifiers() == Qt::ControlModifier){//捕获ctrl键被按下
qDebug() << "ctrl+wheel";
//业务实现
return true;
}
}
return false;
}

浙公网安备 33010602011771号