一. 背景 在使用迅為提供的QT4.7的時候,鼠標可以正常使用,有觸摸但是觸摸會出現問題。尤其是在左右滑動qt界面的時候,總是會出現往左滑動,畫面急速往右走,然而往右滑動,畫面急速的往左走。
在使用迅為提供的Qtopia4的時候,只能用觸摸不能用鼠標。
二.解決辦法 ① QT4.7系統 打開/bin/qt4 找到這句話: export QWS_MOUSE_PROTO='MouseMan:/dev/input/miceTslib:/dev/input/event2' 然后改為這樣: export QWS_MOUSE_PROTO='MouseMan:/dev/input/mouse1Tslib:/dev/input/event2'
這里注意單雙引號的變化
然后保存退出,在“插上鼠標”的情況下,重啟開發板。(這里注意開機后首先看一下這個文件是不是已經改了,如果沒有修改成功,就再按照這個中方法修改一下,確保這個文件修改成功) 這樣Qt4.7系統就支持了鼠標和就觸摸了
②Qtopia系統 打開/bin/ qtopia 找到這句話: exportQWS_MOUSE_PROTO='TPanel:/dev/input/event2' 然后改成這樣: exportQWS_MOUSE_PROTO='TPanel:/dev/input/event2 MouseMan:/dev/input/mouse1'
然后保存退出,在“插上鼠標”的情況下,重啟開發板。(這里注意開機后首先看一下這個文件是不是已經改了,如果沒有修改成功,就再按照這個中方法修改一下,確保這個文件修改成功) 這樣Qtopia系統就支持了鼠標和就觸摸了
三. 分析和總結 ①.為什么修改成這樣觸摸就不會出現問題了呢? 看一下QT4.7改之前的這句話 exportQWS_MOUSE_PROTO='MouseMan:/dev/input/mice Tslib:/dev/input/event2' 其中 MouseMan:/dev/input/mice 用來配置鼠標的節點 Tslib:/dev/input/event2 用來配置觸摸 在控制臺輸入cat MouseMan:/dev/input/mice 然后不論觸摸屏幕還是使用鼠標,都會有亂碼打印出來。這就證明mice節點會接收來自鼠標和觸摸兩方面的事件,所以會造成干擾,導致觸摸不準確。然后輸入cat MouseMan:/dev/input/mouse1 的時候之后再使用鼠標的時候會打印亂碼,在觸摸時候不會,這樣就不會造成干擾。
②.這樣修改之后,系統確實是支持鼠標和觸摸了,但是鼠標不能夠熱插拔。也就是說要想使用鼠標,必須得在插上鼠標的情況下開機。關于這個原因,我在調試的時候發現:
之前鼠標使用的節點/dev/input/mice不論鼠標有沒有插上都會存在,而之后鼠標用的節點/dev/input/mouse1只有在鼠標插上的時候出現。所以當開機事,開機腳本運行時,如果沒有鼠標,可能鼠標的配置就不會生效。
另外在調試過程中可以使用命令 cat /proc/bus/input/devices 來查看各個輸入設備是否接入,和他們的設備節點。
以上的步驟只是在迅為的4412精英版上試驗過,其他的沒有一步步驗證,但是道理都是一樣的。使用的開發板不同,也許鼠標和觸摸驅動對應的節點會不一樣。可以使用上面提到的cat /proc/bus/input/devices命令來查看不同輸入設備所對應的的設備節點。觸摸屏的驅動是Name="ft5x0x_ts";對于鼠標,可以通過拔掉鼠標和插上鼠標兩種情況下輸入這個命令看一下會增加那一項來確定鼠標的節點。
由于經驗有限,以上都是我個人的理解,可能有誤。所以請大家以批判的心態來閱讀這個文檔。多謝在調試過程中對我進行幫助的同事們,今天有空把這個過程整理出來,以防以后忘記。
|