2016-09-27 132 views
0

我用Qt Creator 3.3.1创建了一个Qt应用程序,使用Qt embedded 4.8.6作为Cortex A5。它运行在嵌入了Linux和触摸屏的电路板上。 文件系统是使用Buildroot 2015.08创建的。 我正在使用ts_calibrate校准的电阻式触摸屏。 Qt应用程序的工作原理,但我经常得到错误的坐标。例如,当我按下一个按钮时,有时程序会将与触摸屏另一个点相关的坐标显示出来,表明按下的按钮无法正常工作。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还是什么的? 任何人都可以帮助我吗?谢谢

+2

尝试使用提供tslib的公用事业:'ts_test', 'ts_print'和'ts_print_raw'。如果他们有同样的问题,那么与Qt无关。 –

+0

我同意卢卡的观点,这很可能是触摸屏本身的一个问题 - 无论是在驱动程序中,还是(更可能)在屏幕边缘发生错误解耦。整个输入堆栈(Linux驱动程序,tslib,Qt)只不过是触摸屏控制器给出坐标的线性变换。 IOW,如果你两次触摸相同的屏幕区域,并给出两个不同的坐标,这是一个硬件问题。 – Arnout

回答

0

听起来像在ts.conf中使用激活的过滤器或其参数可能会有帮助。

既然你问你的问题,有tslib的1.2(如果你需要多点触控)tslib的1.3 RC3,都与新的和改进的过滤器,见tslib's project page

+0

尽管这个链接可能回答这个问题,但最好在这里包含答案的基本部分,并提供参考链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/评论/低质量帖/ 14658483) –

+0

@Odedra这似乎更像一个链接唯一的答案。 –