Question

I need to a keymap for my embedded QWSServer application.

Using environmental variables like this

QWS_KEYBOARD="TTY:keymap=/german_keyboard.qmap"
export QWS_KEYBOARD

works, but isn't optimal for me.

I tried to set it from code using

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

as mentioned here.

However, it is not working. Any ideas how to fix it?

Était-ce utile?

La solution

It actually looks like you couldn't do it. According to this manual page you can only set the driver and device for a keyboard handler, but no additional options like keymap. In this arcticle about the keymap thing only the environment variable way ist mentioned, too.

Because of this, the answer here seems to be wrong.

Beware: According to this answer, Qt5 doesn't have QWS and all QWS-related APIs have been removed.

Autres conseils

You can try:

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

It works for me, but only the first time, if I want to change the layout a second time, the closeKeyboard() will crash, as it's trying to delete the driver defined by QWS_KEYBOARD, and it has already been deleted the first time.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top