Qt进阶开发:鼠标及键盘事件
文章目录
- 一、Qt中事件的概念
- 二、Qt中事件处理方式
- 三、重新实现部件的事件处理函数
- 3.1 常用事件处理函数
- 3.2 自定义控件处理鼠标和绘图事件
- 3.3 常用事件处理函数说明
- 四、重写notify()函数
- 五、QApplication对象上安装事件过滤器
- 六、重写event()事件
- 七、在对象上安装事件过滤器
- 八、事件的传递顺序
- 九、鼠标及键盘事件的完整实例
- 9.1 鼠标事件的完整实例
- 9.2 键盘事件的完整实例
一、Qt中事件的概念
在 Qt 中,事件(Event) 是程序和用户、系统之间交互的一种机制。它是 Qt 应用响应用户操作(如鼠标点击、键盘输入、窗口变化、定时器等)的核心组成部分。Qt 通过其 事件系统 实现了灵活、统一的事件处理模型。
事件是继承自 QEvent 的对象,用来描述“发生了什么事情”。比如:
二、Qt中事件处理方式
一个事件由一个特定的QEvent子类来表示,但是有时一个事件又包含多个事件类型,比如鼠标事件文可以分为鼠标按下、双击和移动等多种操作。这些事件类型都由 QEvent类的枚举型QEvent::Type来表示,其中包含了一百多种事件类型,虽然QEvent的子类可以表示一个事件,但是却不能用来处理事件,那么应该怎样来处理一个事件呢?QCoreApplication类的notify()函数的帮助文档给出了5种处理事件的方法:
- 重新实现部件的paintEvent()、mousePressEvent()等事件处理函数。
- 重新实现notify()函数。这个