一直都没有写博客的习惯,但是发现有时候找个问题网上都很少有解决方法,所以想把自己遇到过的问题以及解决方式写下来,方便遇到同样问题的能够快速解决问题。
开发环境:Qt4.8.6+hi3520D
问题描述:刚开始是在QSlider滚动鼠标滚轮调值的时候发现快速滚动滚轮鼠标会飘到屏幕左下角,并且退出当前界面(程序中设置了鼠标右击退出当前界面)。然后在QCombobox中也有同样的现象,之后直接在空白处快速滚动滚轮也会有同样的情况。
解决方式:
在网上找了下,好像发现有几个也出现过类似问题,但是都没有有效的解决方式,分别是:
- Qt 程序鼠标滚动,有几率触发光标消息的问题。http://bbs.ebaina.com/thread-38345-1-1.html (出处: 易百纳论坛)
- 嵌入式Qt4.8的滚动条控件使用滚轮问题 https://bbs.csdn.net/topics/392283236?list=lz
- 嵌入式下Qt 滑轮事件的丢失 http://www.qtcn.org/bbs/read-htm-tid-63548.html
过程我就不说了吧,鼠标直接左键按下事件与快速滚动滚轮触发的左键按下事件不同的地方是buttons(),如果是鼠标直接左键按下,buttons()的值为0x1,如果是快速滚动滚轮触发buttons()的值为(0x1 | 0x4),右键同理。所以在重写的事件函数里面判断一下鼠标事件的buttons()值就可以把快速滚动滚轮触发的鼠标按下事件筛选出来了。如下图:
但是这样并没有解决鼠标会飘向屏幕左下角的问题…若有遇到同样问题的还请不吝赐教,谢谢!