zoukankan      html  css  js  c++  java
  • 【Linux开发】【Qt开发】Qt界面键盘、触摸屏、鼠标的响应设置

    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 -qws
    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
    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"
    鼠标能够一定,但是移动很絮乱。无法点击想选中的目标。


    解决了鼠标不可用的问题,我还未来得及研究,先写着。

    1.3 最新进展,鼠标可用

    配置内核,重新编译内核:
    #vim arm/arch/omap3_stalker_defconfig
    CONFIG_INPUT_MOUSEDEV=y 

    CONFIG_INPUT_MOUSE=y 

    不用配置QWS_MOUSE_PROTO,配置过的

    #export QWS_MOUSE_PROTO=""

    这样鼠标触摸屏都可以用了,鼠标很正常,触摸可以用,但是到处乱跳。

    下面三个配置参数没有找到,我也没配置,也可以用的。
    CONFIG_INPUT_MOUSEDEV_PSAUX=y 
    CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 
    CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 

    1.4 鼠标、触摸屏同时使用

    export QWS_MOUSE_PROTO="tslib:/dev/input/touchscreen0 mouseman:/dev/input/mice"

    3、说明:

    帖子推荐:
    上条验证有用。



    =====================================
    SNO:
     /usr/etc/ts.conf中的配置。
    今天主要是完成tslib在mini210开发板上的移植,传统的移植方法在这个上面根本行不通,不得不说,不知内幕,你永远都不会懂,一个黑匣子会难死多少脑细胞啊,在还好我们有陈sir,呵呵,下面写一下主要的过程和重点:
    首先是ts.conf,module_raw input修改成module_raw friendlyarm-ts-input,其余相同 。其次是friendlyarm-ts-input.so,在友善之臂自带的文件系统中/usr/lib/ts目录下,可以把整个ts目录拷贝取代编译tslib形成lib/ts目录。然后是拷贝相应的libts-1.0.so.0到自己做的文件系统/lib下,最后是配置环境变量在/etc/profile中加入
    export T_ROOT=/opt/tslib
    export LD_LIBRARY_PATH=$T_ROOT/lib //指定tslib库文件路径
    //export TSLIB_CONSOLEDEVICE=none //tslib运行需要的控制台,这里就是LCD屏幕 ,设定控制台设备为none,否则默认为/dev/tty,
    export TSLIB_FBDEVICE=/dev/fb0 //指定帧缓冲设备 
    export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
    export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
    export TSLIB_TSDEVICE=/dev/touchscreen-1wire //指定触摸屏设备节点文件
    export TSLIB_CALIBFILE=/etc/pointercal //指定触摸屏校准文件pintercal的存放位置export QWS_MOUSE_PROTO=tslib:/dev/touchscreen-1wire
    执行ts_calibrate校验程序。
  • 相关阅读:
    使用C++与SFML编写一个简单的撞球游戏Part3——创建游戏启动界面
    生命游戏
    一道面试题
    为目标数字添加逗号分隔,由 baidu.number.comma 想到的
    制作JavaScript选择器(1)解析令牌
    Team Foundation 使用第三方比较工具
    Levenshtein Distance算法
    计算颜色的亮度值
    整理QUnit API
    Scrum笔记整理
  • 原文地址:https://www.cnblogs.com/huty/p/8518285.html
Copyright © 2011-2022 走看看