请选择 进入手机版 | 继续访问电脑版
搜索

19

主题

48

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
发表于 2017-4-11 16:18:42 7653 浏览 0 回复

QT 鼠标和触摸的问题

本帖最后由 Linux 于 2017-5-8 18:58 编辑

QT 鼠标和触摸的问题
. 背景
在使用迅为提供的QT4.7的时候,鼠标可以正常使用,有触摸但是触摸会出现问题。尤其是在左右滑动qt界面的时候,总是会出现往左滑动,画面急速往右走,然而往右滑动,画面急速的往左走。



.解决办法
QT4.7系统
打开/bin/qt4
找到这句话:
export QWS_MOUSE_PROTO='MouseMan:/dev/input/mice Tslib:/dev/input/event2'
然后改为这样:
export QWS_MOUSE_PROTO='MouseMan:/dev/input/mouse1 Tslib:/dev/input/event2'


然后保存退出,在“插上鼠标”的情况下,重启开发板。(这里注意开机后首先看一下这个文件是不是已经改了,如果没有修改成功,就再按照这个中方法修改一下,确保这个文件修改成功)
这样Qt4.7系统就支持了鼠标和就触摸了



. 分析和总结
.为什么修改成这样触摸就不会出现问题了呢?
看一下QT4.7改之前的这句话
exportQWS_MOUSE_PROTO='MouseMan:/dev/input/mice Tslib:/dev/input/event2'
其中
MouseMan:/dev/input/mice
用来配置鼠标的节点
Tslib:/dev/input/event2
用来配置触摸
在控制台输入cat MouseMan:/dev/input/mice    然后不论触摸屏幕还是使用鼠标,都会有乱码打印出来。这就证明mice节点会接收来自鼠标和触摸两方面的事件,所以会造成干扰,导致触摸不准确。然后输入cat MouseMan:/dev/input/mouse1 的时候之后再使用鼠标的时候会打印乱码,在触摸时候不会,这样就不会造成干扰。

.这样修改之后,系统确实是支持鼠标和触摸了,但是鼠标不能够热插拔。也就是说要想使用鼠标,必须得在插上鼠标的情况下开机。关于这个原因,我在调试的时候发现:

之前鼠标使用的节点/dev/input/mice不论鼠标有没有插上都会存在,而之后鼠标用的节点/dev/input/mouse1只有在鼠标插上的时候出现。所以当开机事,开机脚本运行时,如果没有鼠标,可能鼠标的配置就不会生效。


另外在调试过程中可以使用命令
cat /proc/bus/input/devices
来查看各个输入设备是否接入,和他们的设备节点。

以上的步骤只是在迅为的4412精英版上试验过,其他的没有一步步验证,但是道理都是一样的。使用的开发板不同,也许鼠标和触摸驱动对应的节点会不一样。可以使用上面提到的cat /proc/bus/input/devices命令来查看不同输入设备所对应的的设备节点。触摸屏的驱动是Name="ft5x0x_ts";对于鼠标,可以通过拔掉鼠标和插上鼠标两种情况下输入这个命令看一下会增加那一项来确定鼠标的节点。


由于经验有限,以上都是我个人的理解,可能有误。所以请大家以批判的心态来阅读这个文档。多谢在调试过程中对我进行帮助的同事们,今天有空把这个过程整理出来,以防以后忘记。


回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表