郑州营销型网站建设工作室app优化
1.简介
事件过滤器是指在程序分发到event事件之前进行的一次高级拦截。
2.使用步骤
- 给控件安装事件过滤器
- 重写eventfilter事件
3.具体实现
3.1安装事件过滤器
代码:
//给label1安装事件过滤器ui->label->installEventFilter(this);
3.2重写eventfilter事件
代码:
widget.h
//重写事件过滤器的事件bool eventFilter(QObject *,QEvent *);
widget.cpp
//重写eventfilter事件
bool Widget::eventFilter(QObject *obj,QEvent *e)
{if(obj==ui->label){if(e->type()==QEvent::MouseButtonPress){QMouseEvent *ev=static_cast<QMouseEvent *>(e);QString str=QString("事件过滤器中,鼠标按下了 x=%1 y=%2 globalX=%3 globalY=%4").arg(ev->x()).arg(ev->y()).arg(ev->globalX()).arg(ev->globalY());qDebug()<<str;return true;//true代表用户自己处理这个事件,不向下分发}}//其他默认处理return QWidget::eventFilter(obj,e);
}