Russian Qt Forum
Июля 05, 2025, 01:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

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

Сообщений: 306


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

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

Сообщений: 5877


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


Просмотр профиля 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.035 секунд. Запросов: 20.