Qt Embedded for Linux.键盘布局切换

Van*_*uan 4 qt internationalization keyboard-layout qtembedded

我正在使用Qt Embedded开发应用程序并在linux framebuffer中运行它.我需要一种方法来输入非美国字符.是否可以用Qt更改键盘布局?

我试着在Qt/X11上运行它.布局切换和输入在那里非常好.但是当我用Qt/Embedded编译它并在framebuffer中运行它时我无法改变布局.

我搜索了文档,没有找到任何关于布局切换的信息.

我认为它与文档中指定的qt键盘驱动程序有关.看来我应该开发自己的键盘驱动程序.但我正在使用标准键盘,我认为必须有一种标准的方式来改变输入语言?

你会建议什么?

顺便说一下,我正在使用4.5版本.也许4.6有什么可以解决这个问题?

这里遇到同样的问题:

http://lists.trolltech.com/pipermail/qt-embedded-interest/2008-August/000034.html

http://lists.trolltech.com/qt-interest/2004-02/msg00570.html

Van*_*uan 7

版本4.6获得了键盘映射支持.解:

  1. 生成kmap文件:

    ckbcomp -layout xx> xx.kmap

  2. 将kmap转换为qmap

    kmap2qmap xx.kmap xx.qmap

  3. 通过加载键映射

    1. 指定QWS_KEYBOARD环境变量:

      QWS_KEYBOARD = "TTY:键盘映射= xx.qmap"

    2. 或动态加载键图:

      QWSKeyboardHandler * currentKeyboardHandler =
          QKbdDriverFactory::create("TTY", "keymap=foo.qmap");
      
      Run Code Online (Sandbox Code Playgroud)

      确保在创建新处理程序时删除创建的处理程序:

      delete currentKeyboardHandler;
      currentKeyboardHandler =
          QKbdDriverFactory::create("TTY", "keymap=bar.qmap");
      
      Run Code Online (Sandbox Code Playgroud)

似乎Qt for Embedded linux被Project Lighthouse取代.但不确定,如果它已准备就绪,我也不知道它是如何处理键盘布局切换的.

更新

Qt5没有QWS,所有与QWS相关的API都被删除了.所以你需要一些第三方解决方案.或者为QPA写一个插件.