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我们没有做任何的修改,这样其他事件还是会去找事件处理函数进行处理
}
//这样就可以在调用事件处理函数之前,对一些事件进行特殊处理。
相关推荐
宇木灵12 小时前
考研数学-高中数学-反三角函数与特殊函数day3
笔记·考研·数学·函数
Yeh20205818 小时前
2月21日笔记
笔记
智者知已应修善业18 小时前
【冰雹猜想过程逆序输出】2025-4-19
c语言·c++·经验分享·笔记·算法
白云偷星子19 小时前
RHCSA笔记7
linux·笔记
枷锁—sha20 小时前
【CTFshow-pwn系列】03_栈溢出【pwn 051】详解:C++字符串替换引发的血案与 Ret2Text
开发语言·网络·c++·笔记·安全·网络安全
子辰ToT21 小时前
LearnOpenGL——PBR(三)漫反射辐照度
笔记·图形渲染·opengl
risc12345621 小时前
认知神经科学
笔记
菩提小狗21 小时前
第18天:信息打点-APP资产&知识产权&应用监控&静态提取&动态抓包&动态调试_笔记|小迪安全2023-2024|web安全|渗透测试|
笔记·安全·web安全
xhyu6121 小时前
【学习笔记】推荐系统 (2.召回:ItemCF、Swing、UserCF)
笔记·学习
【数据删除】34821 小时前
计算机复试学习笔记 Day24【补】
笔记·学习