【问题标题】:Wrong coordinates in a Qt ApplicationQt 应用程序中的错误坐标
【发布时间】: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_testts_printts_print_raw。如果他们有同样的问题,那与 Qt 无关。
  • 我同意 Luca 的观点,这很可能是触摸屏本身的问题 - 无论是在驱动程序中,还是(更有可能)在屏幕边缘出现不良解耦。整个输入堆栈(Linux 驱动程序、tslib、Qt)只不过是对触摸屏控制器给出的坐标进行线性变换。 IOW,如果你触摸同一个屏幕区域两次,它会给出两个不同的坐标,那就是硬件问题。

标签: c++ qt qt4 embedded-linux buildroot


【解决方案1】:

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

既然你问了你的问题,有 tslib 1.2 和(如果你需要多点触控)tslib 1.3-rc3,都带有新的和改进的过滤器,请参阅tslib's project page

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • @Odedra 这似乎不仅仅是一个链接的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
相关资源
最近更新 更多