Russian Qt Forum
Сентябрь 30, 2024, 18:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как в Qt работать с раскладкой клавиатуры?  (Прочитано 3686 раз)
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« : Февраль 05, 2015, 09:31 »

Привет, форумчане. Задался тут вопросом, как можно узнать какая в данный момент стоит раскладка клавиатуры (русская или английская, и т. п.) средствами Qt? Также интересно, как назначить новую раскладку? Как изменить программно стандартное сочетание клавиш измены раскладки клавиатуры на свое? Буду благодарен за любую информацию по этому поводу. 
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Февраль 05, 2015, 09:42 »

ИМХО, через в Кьюти нет такой возможности. Могу ошибаться, жди следующий комментаторов.
Есть ивент QEvent::KeyboardLayoutChange.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #2 : Февраль 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;
}
 
Записан

Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Февраль 05, 2015, 14:19 »

только через нативняк.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.065 секунд. Запросов: 20.