在Qt中切换键盘布局,而不是在嵌入式Linux中切换Qt
我正在寻找一种在我的Qt应用程序中更改键盘布局的方法。该应用程序将在不支持键盘布局文件的Linux内核上运行,因此Qt必须完成有关键盘输入映射的所有工作 对于Qt for Embedded Linux,我在这里找到了一个好看的解决方案: 但不幸的是,根据此处的文档,QKbdDriverFactory类不适用于任何其他Qt版本: 无论如何,我都尝试过包含它(令人惊讶的是,类就在那里),但是每当我调用create函数时,编译器就会抛出“undefined reference”错误 我必须手动编程巨大的QMap对象吗?请告诉我有一种不那么乏味的方式。我不想相信qmap文件不能在Qt之外用于嵌入式Linux,因为如果kmap2qmap转换器在大多数情况下都是无用的,为什么它几乎可以在任何SDK中使用呢 亚历克斯 编辑:其他信息: 我使用的是Qt 4.7.4(32位)和QtCreator 2.4.1。在Qt中切换键盘布局,而不是在嵌入式Linux中切换Qt,linux,qt,keyboard,keyboard-layout,qmap,Linux,Qt,Keyboard,Keyboard Layout,Qmap,我正在寻找一种在我的Qt应用程序中更改键盘布局的方法。该应用程序将在不支持键盘布局文件的Linux内核上运行,因此Qt必须完成有关键盘输入映射的所有工作 对于Qt for Embedded Linux,我在这里找到了一个好看的解决方案: 但不幸的是,根据此处的文档,QKbdDriverFactory类不适用于任何其他Qt版本: 无论如何,我都尝试过包含它(令人惊讶的是,类就在那里),但是每当我调用create函数时,编译器就会抛出“undefined reference”错误 我必须手动编程巨
我在虚拟机上使用64位的Ubuntu 12.04 目标系统是一个具有专用最小Linux内核的硬件,因此尝试使用Qt Embedded将非常困难。
没有Xcb服务器,没有帧缓冲插件(edit2:但我们确实使用帧缓冲),我也不知道DE或eglfs是什么意思。似乎你应该实现自己的键盘支持层
dumpkeys
程序,因此无法在设备上生成密钥映射文件。使用桌面版本这个问题缺乏重要信息。你在用DE吗?你在用X吗?您正在使用eglfs吗?你正在使用帧缓冲区插件吗?您使用的是哪个版本的Qt?这意味着您正在使用Qt4.8。那你为什么不使用嵌入式呢?好的,我添加了我能找到的信息。请注意,我是“Qt嵌入式”线程中的同一个人,所以让我们尽量避免冗余。我只是觉得最好创建一个新线程,因为这是一个新问题。DE意味着桌面环境。所以,它是嵌入式设备,好的。我仍然不明白您是如何在没有X11、帧缓冲区或EGL的系统上运行桌面Qt版本的。Linux图形模式可以是X11、帧缓冲区或EGL。看起来它不是一个传统的Linux系统。到底是linux吗?你得靠自己。由于没有kbd模块,您必须从头开始实现所有功能(请参阅LFS项目),或者要求您的内核供应商定制系统以满足您的需要更多关于Qt中EGL/X/Framebuffer支持的信息:但这是针对QT5的,您可能正在使用Qt嵌入式Android?谢谢,我会记住这一点,但现在我们决定尝试切换到Qt嵌入式。