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;
}
posted @ 2025-05-09 11:59  站着说话不腰疼  阅读(46)  评论(0)    收藏  举报