event事件分发器,用于分发事件,在这里也可以做拦截,返回值boo。如果返回的是true代表拦截处理,不再向下分发。
展示事件拦截
上一段代码:【QT】鼠标常用事件-CSDN博客
代码
// 事件分发器
// 拦截鼠标按下
// QEvent是所有事件的父类
bool MyLabel::event(QEvent* e) {
if (e->type() == QEvent::MouseButtonPress) {
// 转换一下
QMouseEvent* ev = static_cast<QMouseEvent*>(e);
QString str = QString("在event中鼠标按下, x = %1, y = %2").arg(ev->x()).arg(ev->y());
qDebug() << str;
// 拦截
return true;
}
// 其他事件交给父类
return QLabel::event(e);
}
.h文件中声明该函数
效果
忘记返回true。没拦截住。
不建议做拦截