Qt5嵌入式触摸屏无法正常工作

时间:2015-06-17 15:06:23

标签: linux qt5 framebuffer

我有qt5嵌入Linux。当我使用Linux帧缓冲区运行程序时,我的触摸屏不起作用,例如:

./myprog -plugin tslib:/dev/input/event0

更多详情:

  • ts_calibrate工作正常
  • 当我使用./myprog -platform eglfs运行程序时,触摸屏工作正常
  • 我的环境:

    TSLIB_TSDEVICE=/dev/input/event0
    USER=root
    LD_LIBRARY_PATH=/usr/local/Qt-5.3.2/lib/
    TSLIB_TSEVENTTYPE=INPUT
    OLDPWD=/usr/local/Qt-5.3.2
    HOME=/root
    QTDIR=/
    TSLIB_FBDEVICE=/dev/fb0
    QT_QPA_EVDEV_KEYBOARD_PARAMETERS=/dev/input/event1
    TSLIB_PLUGINDIR=/usr/lib/ts
    TSLIB_CONSOLEDEVICE=none
    LOGNAME=root
    TERM=vt102
    QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=rotate=270
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    QT_QPA_GENERIC_PLUGINS=evdevmouse:/dev/input/event0
    TSLIB_CONFFILE=/etc/ts.conf
    SHELL=/bin/sh
    QWS_DISPLAY=powervr
    QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:rotation=0
    PWD=/root
    QWS_MOUSE_PROTO=tslib
    TSLIB_CALIBFILE=/etc/pointercal
    
  • Qt 5.3.2 config.status

     configure -verbose -confirm-license -release -no-xcb -no-pch -icu -tslib -qpa eglfs -no-c++11 -no-cups -no-gtkstyle -make libs -opensource -skip qtactiveqt -skip qtandroidextras -skip qtconnectivity -skip qtenginio -skip qtimageformats -skip qtlocation -skip qtmacextras -skip qtsensors -skip qtserialport -skip qttranslations -skip qttools -skip qtwebkit-examples -skip qtwinextras -skip qtx11extras -xplatform linux-omap3-g++ -qpa eglfs -qpa linuxfb -evdev
    

4 个答案:

答案 0 :(得分:1)

Qt对tslib的支持是不确定的。我发现Qt的一部分尝试实现手势,但Qt的一部分尝试将触摸映射到鼠标点击。根据我自己的经验,结果是未完成/放弃的手势。

答案 1 :(得分:1)

我希望你找到解决方案。如果没有,试试这个:

  1. 指定TSLIB设备

    导出TSLIB_TSDEVICE = / dev / input / event0

  2. 在某些设备上,您必须启用TSLIB支持(在我的主板上不需要)

    导出QT_QPA_FB_TSLIB = 1

  3. 启动您的申请

    ./ myCuteQt5App -platform linuxfb -plugin tslib

  4. 一切都应该正常工作(在我的情况下就像魅力一样;)。)

    希望它有所帮助。

答案 2 :(得分:1)

由于您有evdev可用,因此您可以使用该输入获得更多成功。我成功地使用了以下内容:

export QT_QPA_PLATFORM=linuxfb
export QT_QPA_GENERIC_PLUGINS=evdevtouch,evdevmouse,evdevkeyboard
export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1

答案 3 :(得分:0)

从tslib 1.3版开始,您可以使用包含的ts_uinput守护程序来创建evdev输入设备。将你的evdev环境指向它,你就可以使用tslib过滤和校准触摸输入,而无需使用QT的tslib插件。