簡體   English   中英

Qt中的鍵盤布局切換,而不是嵌入式Linux中的Qt

[英]Keyboard layout switching in Qt, not Qt for embedded Linux

我正在尋找一種從Qt應用程序中更改鍵盤布局的方法。 該應用程序將在不支持鍵盤布局文件的Linux內核上運行,因此Qt必須做所有與鍵盤輸入的映射有關的事情。

對於Qt for Embedded Linux,我在這里找到了一個漂亮的解決方案: Qt Embedded for Linux。 鍵盤布局切換

但是遺憾的是,根據此處的文檔,QKbdDriverFactory類不適用於任何其他Qt版本: http : //qt-project.org/doc/qt-4.8/qkbddriverfactory.html無論如何,我都試圖將其包括在內(而且令人驚訝的是, ),但是每當我調用create函數時,編譯器都會引發“未定義的引用”錯誤。

我是否必須手動編程巨大的QMap對象? 請告訴我,有一種不太繁瑣的方法。 我不想相信qmap文件不能在Qt以外的嵌入式Linux中使用,因為如果大多數時間都沒有用,為什么kmap2qmap轉換器幾乎可以在任何SDK中使用?

亞歷克斯

編輯:附加信息:我正在使用Qt 4.7.4(32位)和QtCreator 2.4.1。
我在虛擬機上使用Ubuntu 12.04(64位)工作。
目標系統是具有專用的最小Linux內核的硬件,因此嘗試使用Qt Embedded將非常困難。
沒有Xcb服務器,沒有幀緩沖插件(edit2:但是我們確實使用了幀緩沖),我無法確定DE或eglfs的含義。

似乎您應該實現自己的鍵盤支持層。

  1. 您沒有dumpkeys程序,因此無法在設備上生成鍵盤映射文件。 使用桌面版本。
  2. 在台式機上生成的密鑰代碼可能與設備生成的密鑰代碼不同,因此您應該對其進行修改。
  3. 修改鍵映射文件后,您可以編寫代碼以讀取這些文件。
  4. 根據當前使用的鍵盤映射,擁有一個KEY_CODE => UTF8_CHARACTER的映射,您可以攔截鍵盤事件並將其轉換為輸入符號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM