当前位置: 首页 > news >正文

【Qt】事件分发器

事件分发器

概述

        在 Qt 中,事件分发器(Event Dispatcher) 是⼀个核⼼概念,⽤于处理 GUI 应⽤程序中的事件。事件分发器负责将事件从⼀个对象传递到另⼀个对象,直到事件被处理或被取消。每个继承⾃ QObject类 或 QObject类 本⾝都可以在本类中重写 bool event(QEvent *e) 函数,来实现相关事件的捕获和拦截。

事件分发器的工作原理

        在 Qt 中,我们发送的事件都是传给了 QObject 对象,更具体点是传给了 QObject 对象的 event() 函数。所有的事件都会进⼊到这个函数⾥⾯,那么我们处理事件就要重写这个 event() 函数。event() 函数本⾝不会去处理事件,⽽是根据 事件类型(type值)调⽤不同的事件处理函数。事件分发器就是⼯作在应⽤程序向下分发事件的过程中,如下图:

事件分发器⽤于分发事件。在此过程中,事件分发器也可以做拦截操作。事件分发器主要是通过 bool event(QEvent *e) 函数来实现。其返回值为布尔类型,若为 ture,代表拦截,不向下分发。

Qt 中的事件是封装在 QEvent类 中,在 Qt 助⼿中输⼊ QEvent 可以查看其所包括的事件类型:

例子:通过事件分发器拦截鼠标按下事件

(1)在 "widget.h" 头⽂件中声明 ⿏标点击事件 和 事件分发器

(2)在 "widget.cpp" ⽂件中实现 ⿏标点击事件 和 拦截事件

(3)执行程序


http://www.mrgr.cn/news/22653.html

相关文章:

  • 研究生论文开题报告撰写指南以及和任务书的区别是什么
  • 华为OD机试真题-字符串化繁为简-2024年OD统一考试(E卷)
  • 18057 ASCII码值之和的差
  • SuiNS的成就与未来愿景
  • Qt下载,离线安装
  • Python3 网络编程
  • Linux-------基础
  • agentuniverse快速开始和踩坑
  • 中亚五国认证制度体系,认证科普!
  • 如何把微信小程序添加到电脑桌面?
  • 优化销售流程:免费体验企元数智小程序合规分销系统!
  • GMT绘图笔记:在地图上绘制直线而不是大圆弧
  • 盛元广通医药行业实验室设备管理系统
  • C语言 ——— 宏和函数的区别
  • 第18届世界杰出华人奖得主王傲山:承父业展关怀,体现“圆桌”精神
  • javaString数据类型
  • Python 将字典转换为 JSON
  • 在亚马逊云科技上利用Graviton4代芯片构建高性能Java应用(下篇)
  • Rust的常数、作用域与所有权
  • Nacos服务注册