学做网站的视频,网站需要建手机版的吗,郧阳网站建设,excel做公司的小网站博客主页#xff1a;Duck Bro 博客主页系列专栏#xff1a;Qt 专栏关注博主#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出#xff0c;及时修改感谢大家点赞#x1f44d;收藏⭐评论✍ Qt系统相关 | Qt事件 | 事件的介绍及基本概念
文章编号#xff1a;Qt…
博客主页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. 常见的事件叙述
事件名称描述鼠标事件鼠标左键、鼠标右键、鼠标滚轮鼠标的移动鼠标按键的按下和松开键盘事件按键类型、按键按下、按键松开定时器事件定时时间到达进⼊离开事件鼠标的进⼊和离开滚轮事件鼠标滚轮滚动绘屏事件重绘屏幕的某些部分显示隐藏事件窗口的显示和隐藏移动事件窗口位置的变化窗口事件是否为当前窗口⼤小改变事件窗口⼤小改变焦点事件键盘焦点移动拖拽事件⽤鼠标进行拖拽