Qt移植對USB鼠標鍵盤、觸摸屏的支持

、USB鍵盤

通過一番搜索,發現對Qt鍵盤的支持主要關係到兩個方面:php

一、 鍵盤類型肯定:

      4.7之前的Qt版本,若是是PS2圓孔鍵盤,Qt編譯時需加上選項:-qt-kbd-vr41xx(未測試);若是是USB鍵盤,需加上-qt-kbd-usb選項。
 Qt4.7.3默認的是tty,對於USB鍵盤可用,不須要配置。

  二、環境變量設置:

      而後移植到目標板上,還須要設置環境變量QWS_KEYBOARD:html

         $export QWS_KEYBOARD="USB:/dev/input/event0"linux

     對於qt鼠標鍵盤移植問題,仍是有點納悶。
vim

       $export set QWS_KEYBOARD="TTY:/dev/tty1"
 根據不一樣的開發板,這個彷佛不一樣。個人:
       $export set QWS_KEYBOARD="TTY:/dev/input/event4"
qt的程序有鍵盤輸入值,可是是不少不規則的字符集,不知道爲何。
       $./qt -qws 
Could not initialize virtual console switching.
測試

 

     問題解決了:spa

     不要使用QWS_KEYBOARD,這個設置適合本身作按鍵;使用QWS_USB_KEYBOARD,這個是支持USB標準鍵盤的。.net

            $export QWS_USB_KEYBOARD=/dev/input/event4nuxt

 三、說明:

 

     提示:能夠用 $cat /dev/input/event 拔插USB鍵盤,查看哪一個是你的鍵盤設備節點。有兩個設備節點,能夠用htm

            $cat /dev/input/event4 或$cat  /dev/input/event5 回車,再按鍵盤,看終端是否有字符輸出,能夠肯定可用的設備節點。blog

     推薦帖子:

     http://www.qtcn.org/bbs/simple/?t47670.html

 

2、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 微軟鼠標(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"

三、說明:

帖子推薦:
上條驗證有用。
 
 
 
=====================================
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校驗程序。
相關文章
相關標籤/搜索