Qt快速滚动滚轮会触发鼠标左击与右击事件的解决方式

一直都没有写博客的习惯,但是发现有时候找个问题网上都很少有解决方法,所以想把自己遇到过的问题以及解决方式写下来,方便遇到同样问题的能够快速解决问题。

开发环境:Qt4.8.6+hi3520D
问题描述:刚开始是在QSlider滚动鼠标滚轮调值的时候发现快速滚动滚轮鼠标会飘到屏幕左下角,并且退出当前界面(程序中设置了鼠标右击退出当前界面)。然后在QCombobox中也有同样的现象,之后直接在空白处快速滚动滚轮也会有同样的情况。

解决方式:
在网上找了下,好像发现有几个也出现过类似问题,但是都没有有效的解决方式,分别是:

  1. Qt 程序鼠标滚动,有几率触发光标消息的问题。http://bbs.ebaina.com/thread-38345-1-1.html (出处: 易百纳论坛)
  2. 嵌入式Qt4.8的滚动条控件使用滚轮问题 https://bbs.csdn.net/topics/392283236?list=lz
  3. 嵌入式下Qt 滑轮事件的丢失 http://www.qtcn.org/bbs/read-htm-tid-63548.html

过程我就不说了吧,鼠标直接左键按下事件与快速滚动滚轮触发的左键按下事件不同的地方是buttons(),如果是鼠标直接左键按下,buttons()的值为0x1,如果是快速滚动滚轮触发buttons()的值为(0x1 | 0x4),右键同理。所以在重写的事件函数里面判断一下鼠标事件的buttons()值就可以把快速滚动滚轮触发的鼠标按下事件筛选出来了。如下图:
在这里插入图片描述

但是这样并没有解决鼠标会飘向屏幕左下角的问题…若有遇到同样问题的还请不吝赐教,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值