Qt笔记 事件分发

我们知道,事件的产生和处理主要分为四个部分,事件产生,事件过滤,事件分发以及事件处理。

实际上,在事件分发和事件处理之间,事件分发器会调用一个函数叫做event,这个event所代表的含义就是我们用户要处理的这个事件,多数情况下我们对事件做任何处理,而是由事件处理函数来进行处理。当然我们也可以设置event函数来拦截事件,这样就不会分发到对应的事件处理函数上,而是在event函数就处理完了。一般来说,我们不推荐这样使用,但是我们得知道。

总的来说,widget的event方法就是在处理函数调用之前进行拦截,可以针对一些事件在处理进行特殊处理。

cpp 复制代码
//在widget.h的文件下进行声明
#include <QEvent>
protected:
    bool event(QEvent *event);



//在widget.cpp的文件下进行定义
bool Widget::event(QEvent *event)
{
    if(event->type() == QEvent::MouseButtonPress)//拦截鼠标点击事件
    {
        qDebug() << "鼠标按键被按下";
        return true;
    }
    return QWidget::event(event);//对于其他的事件,我们交给父类的event来处理,父类的event我们没有做任何的修改,这样其他事件还是会去找事件处理函数进行处理
}
//这样就可以在调用事件处理函数之前,对一些事件进行特殊处理。
相关推荐
夜流冰3 小时前
Motor - 电机扭矩和电机大小的关系
笔记
AI视觉网奇3 小时前
LiveTalking 部署笔记
笔记
倘若猫爱上鱼4 小时前
关于系统能检测到固态可移动硬盘(或U盘),系统资源管理器却始终无法扫描到固态可移动硬盘(或U盘)的解决办法
笔记
求真求知的糖葫芦4 小时前
巴伦学习(一)一种新型补偿传输线巴伦论文学习笔记(自用)
笔记·学习·射频工程
GLDbalala5 小时前
GPU PRO 4 - 5.3 A Pipeline for Authored Structural Damage 笔记
笔记
三伏5225 小时前
Cortex-M3重启流程——笔记
笔记·cortex-m3
机器视觉知识推荐、就业指导6 小时前
Qt 6 所有 QML 类型(官方完整清单 · 原始索引版)
开发语言·qt
方见华Richard6 小时前
方见华:在递归的暗夜里,把自己活成一束光
人工智能·经验分享·笔记·学习方法·空间计算
zzcufo6 小时前
多邻国学习笔记第五阶段第10-11部分
笔记·学习·c#
BlackWolfSky6 小时前
鸿蒙中级课程笔记2—状态管理V2—@ObservedV2装饰器和@Trace装饰器:类属性变化观测
笔记·华为·harmonyos