QEvent事件是负责事件分发,包括所有事件
返回值为true,用户自己处理事件,不向下分发;false系统处理事件---必须有返回值
查看所有事件,在Qt助手中搜索QEvent::Type
#include "mylable.h" #include <QDebug> MyLable::MyLable(QWidget *parent) : QLabel(parent) { } void MyLable::mousePressEvent(QEvent *event){ qDebug()<<"mousePressEvent:鼠标按下"; } bool MyLable::event(QEvent* e){ if(e->type()==QEvent::MouseButtonPress){ //如果事件类型==鼠标按钮按下 qDebug()<<"QEvent:鼠标按下"; return true; //这个事件不向下分发了--事件被拦截 } return QLabel::event(e); //其它事件有父类的event处理 }
视频教程:https://www.bilibili.com/video/av51766541/?p=34
实例下载: https://share.weiyun.com/50WbD2L
原文:https://www.cnblogs.com/liming19680104/p/11574568.html