【Qt】事件

目录

一、介绍

二、进入离开事件

三、鼠标事件

3.1 鼠标单击事件 

3.2 鼠标释放事件

3.3 鼠标双击事件

3.4 鼠标移动事件

3.5 滚轮事件

四、按键事件

4.1 单个按键

4.2 组合按键

五、定时器

5.1 QTimerEvent类 

5.2 QTimer类

5.3 获取系统日期及时间

六、窗口移动和大小改变事件

七、事件分发器

八、事件过滤器


一、介绍

事件是应用程序内部或者外部产生的事情或者动作的统称。在Qt中使用一个对象来表示一个事件。所有的Qt事件均继承于抽象类QEvent。事件是由系统或者Qt平台本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制时,都会发出一个相应的事件。一些事件是在用户操作时发出,如键盘事件、鼠标事件等,另一些事件则是由系统本身自动发出,如定时器事件

常见的Qt事件如下:

二、进入离开事件

事件处理一般常用的方法为:重写相关的Event函数

在Qt中,几乎所有的Event函数都是虚函数,所以可以重新实现。如:在实现鼠标的进入和离开事件时,直接重新实现 enterEvent() 和 leaveEvent() 即可

enterEvent() 和 leaveEvent() 函数原型如下:

代码示例

新建Qt项目,基类选择QWidget,同时勾选UI界面文件,如下图示:

设计UI文件,如下图示:

在项目中新添加一个类:MyLabel,先选中项目名称QEvent,点击鼠标右键,选择add new...,弹出如下对话框:

选择:Choose....,弹出如下界面:

此时项目中会新添加以下两个文件:

项目文件"mylabel.h"

重写enterEvent()方法

在UI文件中选中Label,右键 -> 提升为...

当点击"提升为..."之后,弹出如下对话框:

修改基类

三、鼠标事件

在Qt中,鼠标事件是用QMouseEvent类来实现的。当在窗口中按下鼠标或者移动鼠标时,都会产生鼠标事件。利用QMouseEvent类可以获取鼠标的哪个键被按下了以及鼠标的当前位置等信息

在Qt帮助文档中查找QMouseEvent类,如下图示:

3.1 鼠标单击事件 

在Qt中,鼠标按下是通过虚函数mousePressEvent()来捕获的

mousePressEvent()函数原型如下: 

[virtual protected] void QWidget::mousePressEvent(QMouseEvent *event)
  • Qt::LeftButton        鼠标左键
  • Qt::RightButton        鼠标右键
  • Qt::MidButton        鼠标滚轮

代码示例:mousePressEvent()

在上述代码的基础上(进入离开事件),在mylabel.h中声明mousePressEvent()方法

在mylabel.cpp中重写mousePressE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GG_Bond21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值