【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念

news2024/10/6 12:32:30

  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt系统相关 | Qt事件 | 事件的介绍及基本概念

文章编号:Qt 学习笔记 / 59

文章目录

  • Qt系统相关 | Qt事件 | 事件的介绍及基本概念
    • 一、Qt事件介绍
      • 1. 事件简介
      • 2. 事件的处理
    • 二、Qt事件分类
      • 1. 事件分类
      • 2. 常见的事件叙述


一、Qt事件介绍

1. 事件简介

在Qt中,事件是指发生在应用程序中的各种动作或事物,如鼠标点击、键盘输入、窗口关闭等。Qt的事件机制基于事件循环,即应用程序不断地从操作系统接收事件并进行处理。

Qt中的事件通过事件对象(QEvent)来表示,每个事件对象都有一个类型(Type)和一些特定的属性。当事件发生时,Qt会将事件对象发送给相关的对象进行处理。需要注意的是,Qt支持事件的继承和重载,开发者可以根据自己的需求来重写事件处理函数。

在Qt中,事件的处理通常是通过重写事件处理函数来实现的。每个QObject派生类都有一个事件处理函数(event()函数),开发者可以在该函数中实现对特定事件的处理逻辑。例如,可以在QWidget的event()函数中处理鼠标点击事件、键盘事件等。

2. 事件的处理

事件处理⼀般常⽤的⽅法为:重写相关的 Event 函数。
在 Qt 中,⼏乎所有的 Event 函数都是虚函数,所以可以重新实现。如:在实现⿏标的进⼊和离开事件时,直接重新实现 enterEvent() 和 leaveEvent() 即可。
enterEvent() 和 leaveEvent() 函数原型如下:
在这里插入图片描述
在这里插入图片描述


二、Qt事件分类

1. 事件分类

在这里插入图片描述
QMouseEvent包含了鼠标事件的各种信息,例如鼠标的位置、按下的按键类型、按下的按键的状态等。它可以用于捕捉鼠标的按下、释放、移动等事件,并对这些事件做出相应的处理。

QKeyEvent包含了键盘事件的各种信息,例如按下的键值、按下的键的状态、是否按下修饰键(如Shift、Ctrl等)等。它可以用于捕捉键盘的按下、释放、按住等事件,并对这些事件做出相应的处理。

QTimerEvent包含有关定时器ID和定时器类型的信息。它可用于根据定时间隔触发特定操作或更新用户界面。

QDropEvent是一个在Qt应用程序中拖放操作发生时发送给QDropEvent接收者的事件。它包含关于拖放操作的各种信息,包括拖动的数据、拖放的位置和操作的类型。

QInputEvent是Qt中用于表示输入事件的基类。它是一个抽象类,不能直接实例化,而是通过其具体的子类来表示不同类型的输入事件,如键盘事件、鼠标事件等。

QPaintEvent是Qt中用于表示绘图事件的类。它是QObject类的子类,用于通知部件需要重新绘制自己。当部件需要进行绘制时,Qt会自动创建一个QPaintEvent对象,并将其发送给部件的paintEvent()函数进行处理。在paintEvent()函数内部,可以通过调用部件的绘图函数,如QPainter的绘图函数,来完成具体的绘制操作。

2. 常见的事件叙述

事件名称描述
鼠标事件鼠标左键、鼠标右键、鼠标滚轮,鼠标的移动,鼠标按键的按下和松开
键盘事件按键类型、按键按下、按键松开
定时器事件定时时间到达
进⼊离开事件鼠标的进⼊和离开
滚轮事件鼠标滚轮滚动
绘屏事件重绘屏幕的某些部分
显示隐藏事件窗口的显示和隐藏
移动事件窗口位置的变化
窗口事件是否为当前窗口
⼤小改变事件窗口⼤小改变
焦点事件键盘焦点移动
拖拽事件⽤鼠标进行拖拽

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1831907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FPGA的基础仿真项目--七段数码管设计显示学号

一、设计实验目的 1. 了解数码管显示模块的工作原理。 2. 熟悉VHDL 硬件描述语言及自顶向下的设计思想。 3. 掌握利用FPGA设计6位数码管扫描显示驱动电路的方法。 二、实验设备 1. PC机 2.Cyclone IV FPGA开发板 三、扫描原理 下图所…

夏季家里粉尘螨虫满天飞?一招搞定!好用家用空气净化器品牌分享

每到夏季,是家中尘螨滋生的高发期。夏季无论是开窗通风还是关窗开空调,都很容易造成空气中的浮尘堆积,不注意卫生清洁,容易滋生细菌、尘螨。 易过敏、体质弱的人群长时间在空气污染环境中,很容易就会过敏或者发生其他…

在矩池云快速使用ChatTTS,文本转语音太酷了

ChatTTS 最新的一款文本转语音模型,目前支持英文和中文两种语言,面向对话场景的转化则更为精准,在汉语的语音韵律方面超越了以往很多同类模型,此外它还支持细粒度控制,允许在文字中加入笑声、停顿、语气词等&#xff0…

一道全等三角形证明题

接着上次那道题 一道初中一年级几何题解析,再来做一道初中一年级下半学期几何题目: 傍晚丢垃圾散步时看到小小的学生学习群里丢了这个题目,想到一个解法。实在构造不出契合题干阅读材料结论的三角形,索性先根据这结论做一个推论…

openh264 帧间预测编码过程源码分析

openh264 OpenH264 是一个开源的 H.264 编码和解码器,由思科系统开发并维护。它专为实时应用程序如 WebRTC 设计,提供了从基础到高级特性的广泛支持。OpenH264 的编码器支持从 Constrained Baseline Profile 到 5.2 级别,允许任意分辨率的编…

硕士毕业论文《基于磁纹理的磁化动力学研究》

前言 本文是博主的硕士毕业论文,应该也是“自旋电子学(微磁学)”博客专栏的最后一篇博客,该毕业论文预设排版的PDF版本见下载链接:https://download.csdn.net/download/qq_43572058/89447526。若该博客专栏对读者您的…

一分钱不花!本地部署Google最强开源AI大模型Gemma教程

谷歌发布了轻量级开源系列模型Gemma,其性能强大,可与主流开源模型竞争。通过Ollama可轻松部署Gemma模型,并使用JANAI美化UI界面。显卡在AIGC应用中至关重要,推荐选择性能强、显存大的NVIDIA系列显卡。 半个月前,谷歌搞…

验证药品综合稳定性试验箱的挑战与解决方案

在药品研发和生产过程中,药品的稳定性是一个至关重要的因素。为了确保药品在储存和运输过程中保持其质量和疗效,药品综合稳定性试验箱被广泛用于模拟各种环境条件下的药品稳定性。然而,在实际应用中,药品综合稳定性试验箱的验证面…

判断一组数据哪些是素数,并统计一个数组中元素的出现频率

import java.util.HashMap; import java.util.Map; public class Test_A26 {//判断一个数是不是素数public static boolean isPrime(int num){if(num<1){return false;}for(int i2;i<Math.sqrt(num);i){if(num%i0){return false;}}return true;}//统计数组中出现的频率 p…

LVS(Linux Virtual Server)集群

Cluster&#xff1a;集群&#xff0c;为了解决某个特定问题将多台计算机组合起来形成的单个系统。 集群分为三种类型&#xff1a; LB(Load Balancing)&#xff0c;负载均衡&#xff0c;多个主机组成&#xff0c;每个主机只承担一部分访问请求 HA(High Availiablity)&#xf…

101.qt qml-自定义日历控件2-附带动画效果

黑色风格截图如下所示: 白色风格如下所示: GIF效果如下所示: 1.控件使用介绍 QianWindow2.5版本及以上提供,源码位于:qrc:/common/qmlQianDateTime/QianCalendarInputField.qml QianWindow2.5版本及以上提供,示例使用代码位于:qrc:/pages/QianControlPages/QianDateTimeP…

Excel批量删除括号里内容,帮你轻松应对!

某次&#xff0c;刘小生从系统导出的人员信息中&#xff0c;“姓名”字段信息中包含了工号信息&#xff0c;需要将“原姓名”中的“工号、括号”信息删除&#xff0c;如果一个一个删除工作量很大&#xff0c;刘小生想到可以用“通配符*”批量替换&#xff0c;解放双手&#xff…

UniVue更新日志:SuperGrid组件的使用

github仓库 稳定版本仓库&#xff1a;https://github.com/Avalon712/UniVue 开发版本仓库&#xff1a;https://github.com/Avalon712/UniVue-Develop UniVue扩展框架-UniVue源生成器仓库&#xff1a;https://github.com/Avalon712/UniVue-SourceGenerator SuperGrid组件的实现…

Selenium - 启动后报org.openqa.selenium.InvalidArgumentException: invalid argument错

● 出现的异常&#xff1a; Build info: version: 3.141.59, revision: e82be7d358, time: 2018-11-14T08:25:48 System info: host: DESKTOP-H7TOMMO, ip: 192.168.64.1, os.name: Windows 10, os.arch: amd64, os.version: 10.0, java.version: 1.8.0_131 Driver info: dr…

Excel小技巧| 批量多列多行转为一列

前期刘小生Star分享了Excel批量一列转多列多行&#xff0c;你学会了嘛&#xff01; 前期刘小生遇到需“对多列对行数据合并并找到唯一不重复的信息”&#xff0c;今天举一反三&#xff0c;继续沿用“替换等号”方法&#xff0c;将多列多行转为一列&#xff01; 下面一个模拟案…

理解并应用:JavaScript响应式编程与事件驱动编程的差异

背景介绍 在现代JavaScript开发中&#xff0c;响应式编程&#xff08;Reactive Programming&#xff09;和事件驱动编程&#xff08;Event-Driven Programming&#xff09;是两种非常重要且常用的编程范式。虽然它们都用于处理异步操作&#xff0c;但在理念和实现方式上存在显…

新书速览|抖音账号运营实践

《抖音账号运营实践》 本书内容 抖音是一个最受欢迎的短视频平台&#xff0c;拥有10亿用户&#xff0c;聚合了企业、网红、自媒体、普通用户。抖音已经形成了一个生态圈&#xff0c;用户使用抖音不仅可以解决衣、食、住、行的生活问题&#xff0c;还能解决吃、喝、玩、乐的娱乐…

7.无代码爬虫八爪鱼采集器软件——采集规则/项目的创建与网址输入

接上篇 6.零代码网页爬虫软件基础实操——下载与安装八爪鱼采集器 八爪鱼免费爬虫软件下载&#xff1a; 八爪鱼采集器下载 小白数据采集神器​​https://affiliate.bazhuayu.com/retrieve 直接复制粘贴要采集的网站在这里就可以进入采集规则的设计器 自定义任务 通过这个功能…

3d模型怎么加室外场景渲染的步骤---模大狮模型网

在进行3D模型渲染时&#xff0c;将其放置在室外场景中可以提高渲染效果和真实感。以下是将3D模型加入室外场景的步骤&#xff1a; 1. 选择合适的场景&#xff1a;首先需要选择合适的室外场景&#xff0c;例如城市街道、森林、海滩等等。选择场景时需要考虑模型的大小和比例&…

各大APP自动化运行插件开发需要用到的源代码有哪些?

在当今数字化时代&#xff0c;自动化运行插件的开发在各大APP中扮演着至关重要的角色&#xff0c;这些插件不仅提升了APP的功能性和效率&#xff0c;同时也为用户带来了更加便捷的使用体验。 在开发这些自动化运行插件的过程中&#xff0c;源代码的选择与使用显得尤为关键&…