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


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

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

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


一、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. 常见的事件叙述

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

在这里插入图片描述

相关推荐

  1. Qt笔记 事件分发

    2024-06-17 20:14:06       18 阅读
  2. Qt事件系统

    2024-06-17 20:14:06       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-17 20:14:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-17 20:14:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-17 20:14:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-17 20:14:06       20 阅读

热门阅读

  1. Mariadb/MySQL挂了且重启失败

    2024-06-17 20:14:06       8 阅读
  2. 软设之白盒测试

    2024-06-17 20:14:06       6 阅读
  3. 时区设置函数【man 3 tzset】

    2024-06-17 20:14:06       5 阅读
  4. 中国环保网元宇宙:开启绿色数字生活新篇章

    2024-06-17 20:14:06       9 阅读
  5. 哪些不得不记下的汇编指令

    2024-06-17 20:14:06       5 阅读
  6. leetcode153. 寻找旋转排序数组中的最小值

    2024-06-17 20:14:06       8 阅读
  7. MT1434 找数字

    2024-06-17 20:14:06       8 阅读
  8. 2024 6.10~6.16 周报

    2024-06-17 20:14:06       7 阅读
  9. 工作学习记录

    2024-06-17 20:14:06       7 阅读