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我们没有做任何的修改,这样其他事件还是会去找事件处理函数进行处理
}
//这样就可以在调用事件处理函数之前,对一些事件进行特殊处理。
相关推荐
一口吃俩胖子11 分钟前
【脉宽调制DCDC功率变换学习笔记022】DCDC变换器的稳定性、奈奎斯特准则、增益裕度和相位裕度
笔记·学习
GLDbalala1 小时前
GPU PRO 5 - 2.3 Volumetric Light Effects in Killzone: Shadow Fall 笔记
笔记
熊孩纸的世界你不懂1 小时前
Qt + SQLite 配置与使用指南
c++·qt
豆豆1 小时前
从SaaS到自建CMS的选型复盘:一个专注网站开发的技术选型笔记
笔记·cms·建站系统·内容管理系统·网站管理系统·建站软件·建站工具
我在人间贩卖青春2 小时前
重学Qt——串口编程
qt
小碗羊肉2 小时前
【Agent笔记 | 第三篇】RAG优化
笔记·agent·rag
梁山1号2 小时前
【WK飞控调试笔记】
笔记
2301_809051142 小时前
Linux IO模型与并发服务器 学习笔记
笔记·学习
暴躁小师兄数据学院2 小时前
【AI大模型应用开发工程师特训笔记】第04讲(第1章):Python基础与环境搭建
人工智能·笔记·python·ai
sycmancia2 小时前
Qt——Qt中的调色板
开发语言·qt