【转帖请注明出处:blog.csdn.net/lanmanck】
如何让嵌入式的QT程序同时支持触摸屏和键盘呢?我这里有点心得,分享下。
1、触摸屏大家都用tslib,这就不用多说了,配置qt时要加上tslib的命令行,搜索一下,不多说。
2、嵌入式键盘一般是行列扫描,或者芯片自带的keypad接口,不管如何,有2种处理方式,请参考这里:
http://blog.csdn.net/lanmanck/archive/2011/04/01/6295951.aspx
我这里使用的是标准键盘驱动接口,qt版本是4.5.2。配置的时候有点讲究,就是-qt-kbd-linuxinput,不过每个版本的qt配置可能会有差异,可以configure -embedded -h查看,这个也会影响到环境变量QWS_KEYBOARD的设置。在4.5.2里面是没有linuxinput的,但是有usb,因此指定方式为:QWS_KEYBOARD = USB:/dev/event0,而不是LinuxInput:/dev/event0,但是QT4.6以后又变成后者了,这个要特别注意!
3、当同时使用触摸和键盘时,dev下面会有2个event,这个需要分清楚哪个是tslib,哪个是keypad,可以分别运行测试程序。例如运行tslib的测试程序,如果提示:
selected device is not a touchscreen I understand
这可以把eventx的数字换成另一个,这也是比较快捷的方法。键盘也可以写测试,不过有了tslib的测试程序就不必要了。
4、经过上述配置后QT应该就能识别触摸和键盘了,要处理键盘事件,重载keyPressEvent()即可,这个网上很多,也不多说。
原文链接: http://blog.csdn.net/lanmanck/article/details/6313786