Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [qt] узнать раскладку клавиатуры


Автор: _GRIN_ 19.8.2010, 17:49
Здравствуйте.
Столкнулся с проблемой. При вводе пароля надо отобразить на лэйбле идентификатор раскладки.
А как узнать раскладку?
QApplication::keyboardInputLocale() возвращает пустую локаль ("С")
QApplication::inputContext()->language() возвращает ("Russian") даже когда раскладка английская
QLocale::system() - тоже всегда русская.

Автор: Modul 19.8.2010, 22:08
http://www.forum.crossplatform.ru/lofiversion/index.php/t3869.html

Автор: maxxant 21.8.2010, 21:34
это баг.
http://bugreports.qt.nokia.com/browse/QTBUG-3631

другие рекомендуют использовать евенты от X11 и Xkb

Добавлено через 10 минут и 43 секунды
А, ну и да, D-bus (dbus-monitor правда ничего у меня не видит по смене раскладке, но вдруг, я чего-то не понимаю). см спецификацию hal'а по:

input.xkb namespace
Device objects with the capability input.keys can provide information about their physical layout.
...
input.xkb.layout (string)    e.g. "us"    -  Keyboard layout (as engraved on the keys).
...

Автор: _GRIN_ 22.8.2010, 23:46
maxxant, спасибо, теперь понятно, что через Qt не выйдет (до версии 4.7).
Вопрос закрыт, всем спасибо за помощь. )

Автор: dmitrio 25.9.2012, 11:40
Дак все-таки как определить текущую раскладку средствами Qt?

Автор: dmitrio 1.10.2012, 06:31
up

Автор: dmitrio 3.10.2012, 12:50
Решил использованием Xkblib

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)