0

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

正如这里提到的。

但是,它不起作用。任何想法如何解决它?

4

2 回答 2

2

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

因此,这里的答案似乎是错误的。

注意:根据这个答案,Qt5 没有 QWS,并且所有与 QWS 相关的 API 都已删除。

于 2012-11-06T12:43:34.923 回答
0

你可以试试:

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

它对我有用,但只是第一次,如果我想第二次更改布局,closeKeyboard() 将崩溃,因为它试图删除由 QWS_KEYBOARD 定义的驱动程序,并且它已经被第一次删除。

于 2013-08-06T14:55:59.740 回答