我需要一个嵌入式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);
如上所述here。
但是,它不起作用。任何想法如何解决它?
答案 0 :(得分:2)
实际上看起来你做不到。根据{{3}}手册页,您只能为键盘处理程序设置驱动程序和设备,但没有其他选项,如keymap。 在this arcticle中关于keymap的事情,也只提到了环境变量方式。
因此,答案this似乎是错误的。
注意:根据here,Qt5没有QWS,并且所有与QWS相关的API都已被删除。
答案 1 :(得分:0)
您可以尝试:
QWSServer::instance()->closeKeyboard();
QWSKeyboardHandler * kh = QKbdDriverFactory::create("TTY", "keymap=/german_keymap.qmap");
它适用于我,但只是第一次,如果我想第二次更改布局,closeKeyboard()将崩溃,因为它试图删除QWS_KEYBOARD定义的驱动程序,并且它已被删除第一次。