Russian Qt Forum

Qt => Вопросы новичков => Тема начата: billy4685 от Февраль 05, 2015, 09:31



Название: Как в Qt работать с раскладкой клавиатуры?
Отправлено: billy4685 от Февраль 05, 2015, 09:31
Привет, форумчане. Задался тут вопросом, как можно узнать какая в данный момент стоит раскладка клавиатуры (русская или английская, и т. п.) средствами Qt? Также интересно, как назначить новую раскладку? Как изменить программно стандартное сочетание клавиш измены раскладки клавиатуры на свое? Буду благодарен за любую информацию по этому поводу. 


Название: Re: Как в Qt работать с раскладкой клавиатуры?
Отправлено: Пантер от Февраль 05, 2015, 09:42
ИМХО, через в Кьюти нет такой возможности. Могу ошибаться, жди следующий комментаторов.
Есть ивент QEvent::KeyboardLayoutChange.


Название: Re: Как в Qt работать с раскладкой клавиатуры?
Отправлено: gil9red от Февраль 05, 2015, 10:36
Как узнать раскладку:

Код
C++ (Qt)
#ifdef Q_WS_WIN
#include <windows.h>
#endif
QString getTheCurrentLanguageKeyboardLayouts()
{
   const int hexKeyLanguageRussian = 0x419;
   const int hexKeyLanguageEnglish = 0x409;
   QString name = QApplication::keyboardInputLocale().name();
 
#ifdef Q_WS_WIN
   switch( LOWORD ( GetKeyboardLayout( 0 ) ) )
   {
       case hexKeyLanguageRussian:
           name = "ru";
       break;
       case hexKeyLanguageEnglish:
           name = "en";
       break;
   }
#endif
 
   return name;
}
 


Название: Re: Как в Qt работать с раскладкой клавиатуры?
Отправлено: Alex Custov от Февраль 05, 2015, 14:19
только через нативняк.