Qt移植对USB鼠标键盘、触摸屏的支持
一、USB键盘
经过一番搜索,发现对Qt键盘的支持主要关系到两个方面:
1、 键盘类型确定:4.7以前的Qt版本,如果是PS2圆孔键盘,Qt编译时需加上选项:-qt-kbd-vr41xx(未测试);如果是USB键盘,需加上-qt-kbd-usb选项。
Qt4.7.3默认的是tty,对于USB键盘可用,不需要配置。2、环境变量设置:
然后移植到目标板上,还需要设置环境变量QWS_KEYBOARD:
$export QWS_KEYBOARD="USB:/dev/input/event0"
对于qt鼠标键盘移植问题,还是有点纳闷。
$export set QWS_KEYBOARD="TTY:/dev/tty1"
根据不同的开发板,这个似乎不同。我的:
$export set QWS_KEYBOARD="TTY:/dev/input/event4"
qt的程序有键盘输入值,但是是很多不规则的字符集,不知道为什么。
$./qt -qws
Could not initialize virtual console switching.
问题解决了:
不要使用QWS_KEYBOARD,这个设置适合自己做按键;使用QWS_USB_KEYBOARD,这个是支持USB标准键盘的。
$export QWS_USB_KEYBOARD=/dev/input/event4
3、说明:提示:可以用 $cat /dev/input/event 拔插USB键盘,查看哪个是你的键盘设备节点。有两个设备节点,可以用
$cat /dev/input/event4 或$cat /dev/input/event5 回车,再按键盘,看终端是否有字符输出,可以确定可用的设备节点。
推荐帖子:
http://www.qtcn.org/bbs/simple/?t47670.html
二、USBS鼠标:
看大网上的同志用:TSLIB_QWS_MOUSE_PROTO="TPanel:/dev/event0 USB:/dev/mouse0
双飞燕:TSLIB_QWS_MOUSE_PROTO="TSLIB:/dev/event0 Itellimouse:/dev/mouse0
TSLIB_QWS_MOUSE_PROTO="TSLIB:/dev/event0 MouseMap:/dev/mouse0
1、环境变量设置:1.1 微软鼠标(USB无线)不同的鼠标环境变量设置可能不一样。我的是Microsoft的:TSLIB_QWS_MOUSE_PROTO="Microsoft:/dev/input/event6 TSLIB:/dev/input/touchsreen0"
$export TSLIB_QWS_MOUSE_PROTO="linuxtp:/dev/input/event6 TSLIB:/dev/input/touchsreen0"这样设置,打开Qt程序,开始可见的鼠标箭头,在鼠标点击后消失了。
$export TSLIB_QWS_MOUSE_PROTO="MouseMan:/dev/input/event6 TSLIB:/dev/input/touchsreen0"这样设置,打开Qt程序,开始可见的鼠标箭头,鼠标能移动一下下。 $./qt -qwshidraw: pid 1884 passed too short reporthidraw: pid 1884 passed too short report
hidraw: pid 1884 passed too short report
hidraw: pid 1884 passed too short report
hidraw: pid 1884 passed too short report
hidraw: pid 1884 passed too short report
hidraw: pid 1884 passed too short report
1.2雷柏鼠标(USB无线)我用雷柏的USB无线鼠标: $export QWS_MOUSE_PROTO="linuxtp:/dev/hidraw3 TSLIB:/dev/input/touchsreen0"鼠标能够一定,但是移动很絮乱。无法点击想选中的目标。
解决了鼠标不可用的问题,我还未来得及研究,先写着。3、说明:帖子推荐:http://topic.csdn.net/u/20120722/17/222d09dd-a46f-4748-b936-61dbed26729d.html?seed=1054718373&r=79200954#r_79200954
http://blog.21ic.com/user1/2177/archives/2006/32818.html