2011-09-19 94 views
3

我正在使用嵌入式Linux上運行的Qt應用程序。我對這個Qt業務很新,因爲我剛剛開始它的一個月後,所以明白,我不是面向對象 ...:PQt鍵盤輸入

我有我的目標運行Qt應用程序運行Linux操作系統。 Qt文檔http://doc.qt.io/archives/qt-4.7/qt-embedded-pointer.html表示,我們必須通過導出某些變量來啓用觸摸屏,USB鍵盤,鍵盤等。也就是說,

export QWS_MOUSE_PROTO=tslib:/dev/input/event1 
export QWS_KEYBOARD="linuxinput:/dev/input/event0 usb:/dev/input/event2" 

好吧,你可以猜到,第一行將鼠標設備設置爲QT作爲觸摸屏。 「tslib」是觸摸屏庫,「event1」是表示觸摸屏的節點。同樣,第二行用於板上鍵盤(event0)和USB鍵盤(event2)。

現在,觸摸屏工作得很好。但問題在於鍵盤。如果我不導出第二個變量,即QWS_KEYBOARD,那麼應用程序運行良好。但是如果我導出第二個變量,應用程序一旦啓動就會進入停止狀態(SIGSTOP)。這在ps輸出中很明顯。我無法使它與SIGCONT合作。

我打算嘗試從源代碼重新配置Qt。任何想法都歡迎。

+0

您是否嘗試過使用QWS_KEYBOARD,僅列出一個設備(即'export QWS_KEYBOARD =「linuxinput:/ dev/intput/event0」')? – jwernerny

+0

是的,我也有同樣的結果。我不明白爲什麼它進入停止狀態。顯然它與這個QWS_KEYBOARD有關,...只是不知道什麼。 – aditya

回答

3

不能相信這一點,但將QWS_KEYBOARD變量設置爲null解決了問題。 在Qt開發FAQ http://developer.qt.nokia.com/faq/answer/why_doesnt_my_keyboard_work_after_i_have_done_an_export_qws_keyboard_dev_tt

export QWS_KEYBOARD="" 

那麼發現了它,它並不能完全解決問題,因爲我仍然要包括與USB鍵盤沿原生鍵盤。

無論如何,我可以使用箭頭/ TAB鍵移動到字段。文字輸入效果很好。雖然CAPS-LOCK和NUM-LOCK似乎不起作用。 SHIFT起作用。我可以通過Ctrl + Alt + Bkspce終止應用程序。所以,暫時我至少可以輸入文字。

如果有任何改進,將發佈。

+0

你有沒有最終獲得NUM-LOCK或CAPS-LOCK的工作? – dtmland

+0

不幸的是,這項要求被取消了,所以工作從未在這個主題上繼續: – aditya

+0

僅供參考,雖然尚未解決 - 我相信我發現我的問題:https://bugreports.qt.io/plugins/servlet/mobile#問題/ QTBUG-9843 – dtmland