我有嵌入Linux的qt5.使用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
解决方法:
Qt对tslib的支持还很不稳定.我发现Qt的一部分尝试实现手势,但是Qt的一部分尝试将触摸映射到鼠标单击.以我自己的经验,结果是手势未完成/掉落.