2012-11-05 42 views
0

我需要爲我的嵌入式QWSServer應用程序的鍵盤映射。qt設置QWSServer鍵盤代碼

使用環境變量這樣

QWS_KEYBOARD="TTY:keymap=/german_keyboard.qmap" 
export QWS_KEYBOARD 

作品,但不是最優我。

我試圖從代碼使用

QWSServer* wsServer = QWSServer::instance(); 
QWSKeyboardHandler * kh = QKbdDriverFactory::create("TTY", "keymap=/german_keymap.qmap"); 
wsServer->setKeyboardHandler(kh); 

如上所述here來設置。

但是,它不工作。任何想法如何解決它?

回答

2

它看起來像你不能這樣做。根據this手冊頁,您只能設置鍵盤處理程序的驅動程序和設備,但不能使用鍵盤映射等附加選項。 在this關於鍵映射物體的唯一環境變量的方式也沒有提及。

因此,答案here似乎是錯誤的。

要小心:根據this answer,Qt5沒有QWS,並且所有與QWS相關的API已被刪除。

+0

不幸的是,你的第一個和第二個鏈接已經死亡。你有新的嗎? – Alex

+1

@Alex我更新了鏈接(google幫助;-)) – Zulakis

+0

感謝您更新鏈接。那麼,你的鍵盤映射改變了嗎?關於工作示例代碼,教程嚴格缺乏。任何人如果沒有得到現實生活中的Qt員工的輔導,只需閱讀課程文檔,就能成爲一名真正的天才人才。 – Alex

0

你可以試試:

QWSServer::instance()->closeKeyboard(); 
QWSKeyboardHandler * kh = QKbdDriverFactory::create("TTY", "keymap=/german_keymap.qmap"); 

這對我的作品,但只有第一次,如果我想改變佈局的第二次,closeKeyboard()會崩潰,因爲它試圖刪除驅動程序由QWS_KEYBOARD定義,並且它在第一次被刪除。