【发布时间】:2016-09-27 08:01:35
【问题描述】:
我使用 Qt Creator 3.3.1 创建了一个 Qt 应用程序,将 Qt Embedded 4.8.6 用于 Cortex A5。 它在嵌入式 Linux 和触摸屏的板上运行。 文件系统是使用 Buildroot 2015.08 创建的。 我使用的是用 ts_calibrate 校准的电阻式触摸屏。 Qt 应用程序有效,但我经常得到错误的坐标。例如,当我按下一个按钮时,有时程序会获取与触摸屏另一点相关的坐标,从而认为按下的按钮无法正常工作。
我的 Qt 环境变量是:
export TSLIB_CALIBFILE='/etc/pointercal'
export TSLIB_CONFFILE='/etc/ts.conf'
export TSLIB_PLUGINDIR='/usr/lib/ts'
export TSLIB_TSDEVICE=`cat /etc/ts.dev 2>/dev/null`
export QWS_DISPLAY=LinuxFB:mmWidth=800:mmHeight=480
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
如果我尝试使用另一个 Qt 应用程序(例如使用 Buildroot 创建的 Qt 演示),我会遇到同样的问题。 它是 Qt 4.8.6 的错误还是什么? 谁能帮我?谢谢
【问题讨论】:
-
尝试使用 tslib 提供的实用程序:
ts_test、ts_print和ts_print_raw。如果他们有同样的问题,那与 Qt 无关。 -
我同意 Luca 的观点,这很可能是触摸屏本身的问题 - 无论是在驱动程序中,还是(更有可能)在屏幕边缘出现不良解耦。整个输入堆栈(Linux 驱动程序、tslib、Qt)只不过是对触摸屏控制器给出的坐标进行线性变换。 IOW,如果你触摸同一个屏幕区域两次,它会给出两个不同的坐标,那就是硬件问题。
标签: c++ qt qt4 embedded-linux buildroot