QT5移植嵌入式触摸屏,点击位置和显示位置不对解决方法

时间:2024-04-14 08:54:09

本文适用于移植QT5后,触摸屏和显示位置不同的问题。

借鉴的问答:https://bbs.****.net/topics/392188963

参考QT文档:http://doc.qt.io/qt-5/embedded-linux.html#platform-plugins-for-embedded-linux-devices

首先,排除触摸屏驱动和硬件问题,使用hexdump "触摸屏设备驱动节点名称",查看触摸屏是否正常,如下图

QT5移植嵌入式触摸屏,点击位置和显示位置不对解决方法

如果排除了触摸屏本身的问题,则是QT坐标系的问题,这里提醒如果是用电容屏的同学,最好不要用tslib插件。

本人是用电容屏,电阻屏和电容屏处理方式原理一样。

下面说处理方法:

移植QT后,常常会出现触摸屏点击位置和显示位置不同的错误,这是因为QT默认的坐标轴和触摸屏的坐标轴不同,这时候我们需要使用QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS 来调教出正确的触摸屏,使用这个参数可以旋转坐标轴和反转x轴或者y轴。QT文档解释如下:

QT5移植嵌入式触摸屏,点击位置和显示位置不对解决方法

那么如何确定旋转多少度还是反转呢?最简单的方法就是编写一个被一个一个按钮充满的界面,然后一个一个按下去。先尝试旋转角度,90,180或者270,这时候会出现两种结果:

第一种:坐标轴正确,那恭喜你了。

第二种:如果还是不正确,接下来就是反转坐标轴了,这时候一般都会有一列或者一行按钮是正确的点击,即点击位置和显示被点击的位置一样,我们画出坐标轴就可以判断该反转哪一个坐标轴了。下面是我的示例:

QT5移植嵌入式触摸屏,点击位置和显示位置不对解决方法

如果你也是itop 4412  7寸屏,则可以使用借用。