繁体   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