Qt图形化界面学习之鼠标事件

Qt中捕获鼠标进入事件的函数如下:
在这里插入图片描述
在这里插入图片描述
要求实现鼠标进入label后打印鼠标进入,移出打印鼠标离开。
在这里插入图片描述
想要实现这个功能,我们必须使用自定义控件。
这里我们不用ui界面。
在这里插入图片描述
这里我们复制刚才帮助文档查看的函数所有信息。
在这里插入图片描述
然后在.cpp中实现我们想要鼠标进入和移除实现的功能。
在这里插入图片描述
然后在主窗口中提升该自定义窗口控件,但是发现基类是QLabel,所以我们需要去修改一下继承对象。
在这里插入图片描述
修改内容如下:
在这里插入图片描述
在这里插入图片描述
最后运行,结果如下:

在这里插入图片描述


我们在QLabel的重新实现函数中找到了与鼠标相关的函数。
在这里插入图片描述
接下来我们给这几个事件进行重写。
首先呢,在头文件中加入这几个函数。
在这里插入图片描述
然后去.cpp文件中重写实现。为了方便观察结果,我们先把之前实现的鼠标进入、离开注释掉。
在这里插入图片描述
在这个实现中,点击鼠标右键也是会有输出结果。

接下来我们实现点击鼠标,显示点击位置的坐标。这个就需要利用我们函数中的参数QMouseEvent了。
在这里插入图片描述

我们可以看到,该类型可以输出打印当前坐标x、y。
在这里,使用了Qt中格式化字符串的方法。
在这里插入图片描述
在这里插入图片描述
当鼠标左键按下,提示信息。
通过查找QMouseEvent的帮助文档,我们可以看见按键相关的在button下。
在这里插入图片描述
但是这里有个问题,鼠标移动并没有显示坐标,因为button只能记录瞬间的结果,因此我们需要使用buttons。
在这里插入图片描述
在这里插入图片描述
只需要加个s,就可以完美运行了。

最后,我们想要鼠标不用点击任何按键就能实时获取位置,设置鼠标追踪,只要鼠标移动就能捕获。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值