Qt重载事件

重载event

事件类型 (EventType)

事件类型是 QEvent 类的一个枚举 ,包含了 Qt 能够处理的所有不同类型的事件。这个枚举包括但不限于以下常见类型:

  • QEvent::MouseButtonPress: 鼠标按钮按下事件。
  • QEvent::MouseButtonRelease: 鼠标按钮释放事件。
  • QEvent::MouseMove: 鼠标移动事件。
  • QEvent::KeyPress: 键盘按键按下事件。
  • QEvent::KeyRelease: 键盘按键释放事件。
  • QEvent::Resize: 窗口或控件尺寸调整事件。
  • QEvent::Paint: 绘制事件,需要重绘控件时发生。
  • QEvent::Close: 请求关闭窗口的事件。
  • QEvent::Timer: 定时器事件。
  • QEvent::FocusIn: 控件获得键盘焦点事件。
  • QEvent::FocusOut: 控件失去键盘焦点事件。

鼠标事件

  • Qt::NoButton: 没有按钮被按下。
  • Qt::LeftButton: 鼠标左键。
  • Qt::RightButton: 鼠标右键。
  • Qt::MiddleButton: 鼠标中键(滚轮按钮)。
  • Qt::BackButton: 鼠标侧后退按钮。
  • Qt::ForwardButton: 鼠标侧前进按钮。

1.鼠标按下(Mouse Press)

  • QEvent::MouseButtonPress: 当用户按下鼠标按钮时发生。可以通过重写 mousePressEvent(QMouseEvent *event) 函数来处理这个事件。

2. 鼠标释放(Mouse Release)

  • QEvent::MouseButtonRelease: 当用户释放鼠标按钮时发生。可以通过重写 mouseReleaseEvent(QMouseEvent *event) 函数来处理这个事件。

3. 鼠标双击(Mouse Double Click)

  • QEvent::MouseButtonDblClick: 当用户双击鼠标按钮时发生。可以通过重写 mouseDoubleClickEvent(QMouseEvent *event) 函数来处理这个事件。

4. 鼠标移动(Mouse Move)

  • QEvent::MouseMove: 当鼠标在组件上移动时发生。这个事件即使没有按钮被按下也会发生,但通常需要设置鼠标跟踪(通过 QWidget::setMouseTracking(true))来接收没有按钮按下的鼠标移动事件。可以通过重写 mouseMoveEvent(QMouseEvent *event) 函数来处理这个事件。

5. 鼠标进入(Mouse Enter)

  • QEvent::Enter: 当鼠标指针进入组件的边界时发生。可以通过重写 enterEvent(QEvent *event) 函数来处理这个事件。

6. 鼠标离开(Mouse Leave)

  • QEvent::Leave: 当鼠标指针离开组件的边界时发生。可以通过重写 leaveEvent(QEvent *event) 函数来处理这个事件。

7. 鼠标滚轮(Mouse Wheel)

  • QEvent::Wheel: 当用户使用鼠标滚轮时发生。可以通过重写 wheelEvent(QWheelEvent *event) 函数来处理这个事件。

光标样式

窗口大小改变事件

QEvent::Resize是一种特定的事件类型,用于表示窗口部件(如QWidget)大小的改变。当窗口部件的大小被调整时,就会生成一个 QResizeEvent 事件,这个事件随后被传递到窗口部件的 resizeEvent 事件处理函数中。

相关推荐
RAN114267600822 分钟前
1.3第一个程序的介绍
开发语言·qt
blue_ice .1 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^138287988721 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
泡海椒2 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)2 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
2501_933670793 小时前
平台招商运营校招能力模型:数据分析、SQL与增长场景拆解
开发语言
菜鸟~noob2333 小时前
【Bonjour】华为Peerium架构深度解析:从冯·诺依曼到百万处理器“一台计算机”,附MATLAB性能仿真【含matlab代码,可直接运行】
开发语言·matlab·华为·peerium
白远山4 小时前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析
shmily麻瓜小菜鸡6 小时前
TDD(测试驱动开发)详解
开发语言·javascript·typescript·node.js·ecmascript
三克的油6 小时前
java-学习1
java·开发语言·学习