我目前正在在i.MX6系统上运行运行Linux(由Yocto构建)的嵌入式设备。我正在使用Qt 5.3.2(平台eglfs
),并且利用TSLIB
处理我的触摸屏。
我能够使用ts_calibrate
成功校准我的触摸屏,然后使用ts_test
对其进行测试,一切都很好:屏幕上的十字准线指针正好跟随我的手指。
至此,我运行了自己的Qt应用程序,该应用程序实际上是基于QML的应用程序。触摸正常(我的意思是说我可以用手指点击屏幕上的按钮),但是我有一个奇怪的行为……如果我触摸触摸屏顶部的按钮,那么触摸屏底部的按钮就会被按下...就像Qt应用程序以错误的方式转换了触摸坐标...
这不是一个普遍的问题:如果我触摸触摸屏的底部,则按下了右边的按钮(正确)。但是,如果我再次触摸触摸屏的上部(顶部),则会触摸屏幕底部的按钮)。
这是怎么回事?有任何想法吗?
最佳答案
好的,我自己找到了一个解决方案:这是由于EVDEV
与TSLIB
同时工作。如果禁用EVDEV
设置环境变量QT_QPA_EGLFS_DISABLE_INPUT=1
,然后在命令行上显式指定-plugin=tslib
,则我的应用程序运行正常。
实际上,禁用EVDEV
会丢失对鼠标的检测,并且鼠标指针始终显示在我的触摸应用程序的屏幕上。无论如何,我可以通过设置另一个环境变量QT_QPA_EGLFS_HIDECURSOR=1
轻松摆脱它。