事件过滤器比事件分发器执行的更早
//widget.h
//过滤器事件
bool eventFilter(QObject *, QEvent *);
代码:
//widget.cpp
//过滤器事件
//参数1:判断控件 参数2:判断事件
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").arg(ev->x()).arg(ev->y());
qDebug()<<str;
return true; //拦截事件,不再向下分发
}
}
//其他事件交给父类处理
return QWidget::eventFilter(obj,e);
}