qt从代码设置QWSServer密钥映射

qt从代码设置QWSServer密钥映射,qt,embedded,keyboard-layout,keymapping,Qt,Embedded,Keyboard Layout,Keymapping,我需要为我的嵌入式QWSServer应用程序创建一个密钥映射 使用这样的环境变量 QWS_KEYBOARD="TTY:keymap=/german_keyboard.qmap" export QWS_KEYBOARD 工作,但不是我的最佳选择 我试着用代码设置它 QWSServer* wsServer = QWSServer::instance(); QWSKeyboardHandler * kh = QKbdDriverFactory::create("TTY", "keymap=/germ

我需要为我的嵌入式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);
如前所述


然而,它不起作用。有没有办法解决这个问题?

事实上,看起来你做不到。根据手册页面,您只能为键盘处理程序设置驱动程序和设备,但不能设置其他选项,如keymap。 在关于keymap的文章中,也只提到了环境变量的方式

因此,答案似乎是错误的

注意:根据,Qt5没有QWS,所有与QWS相关的API都已删除。

您可以尝试:

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

这对我来说是可行的,但只有第一次,如果我想再次更改布局,closeKeyboard()将崩溃,因为它试图删除QWS_键盘定义的驱动程序,并且第一次已经删除了该驱动程序。

不幸的是,您的第一和第二个链接已失效。你有新的吗?谢谢更新链接。那么,你让keymap换工作了吗?这些教程在工作示例代码方面严重缺乏。任何人只要阅读课堂文档,就可以在没有Qt员工指导的情况下工作,这一定是一个真正的天才。不,我一直只使用一个键图,我无法改变工作。好的。那么你是怎么设置一个键图的呢?不幸的是,它没有那么简单。我运行了一个调用“system”(“export-QWS\u-KEYBOARD=\“TTY:keymap=/usr/de.qmap\”)的程序,之后我的GUI启动,但键盘布局没有改变。系统命令返回0。这有什么诀窍吗?