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