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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить QKeyEvent::text по коду Qt::Key с учетом текущей раскладки?  (Прочитано 4429 раз)
lenny
Гость
« : Апрель 11, 2012, 13:51 »

Надо (хочу) отправлять событие нажатия кнопки в некоторый виджет. Туда же пользователь может вводить с клавы. Отправляю с помощью postEvent указатель на объект QKeyEvent.
[cpp]
Qt::Key keyId = Qt::Key_Q;
QString text = "?"; //Как здесь получить текст по коду клавиши c учетом текущей раскладки клавиатуры? То есть как получить по Qt::Key_Q QString("Й") при русской раскладке.
QKeyEvent keyEvent = new QKeyEvent(QEvent::KeyPress, keyId, Qt::ShiftModifier, text);
QCoreApplication::postEvent(someEdit, keyEvent));
[/cpp]

Записан
Bepec
Гость
« Ответ #1 : Апрель 11, 2012, 13:55 »

Никак не получить, если только не запрашивать раскладку у винды.

Кстати интересный вопрос - Qt::Key_Q отреагирует на й? 
Записан
lenny
Гость
« Ответ #2 : Апрель 11, 2012, 14:11 »

Никак не получить
Qt это делает и средства там для этого есть.
Записан
lenny
Гость
« Ответ #3 : Апрель 12, 2012, 14:12 »

Никак не получить
Qt это делает и средства там для этого есть.
Я обшибся, глянул исходники, снаружи этого не сделать.
Записан
Bepec
Гость
« Ответ #4 : Апрель 12, 2012, 14:45 »

Можно просто запрашивать в начале работы по winApi (linuxApi) раскладку и запоминать. Далее уже ловить смену раскладки.

В принципе ничего сложного.
Записан
lolbla2
Гость
« Ответ #5 : Апрель 12, 2012, 15:06 »

с помощью Event filter можно отправлять сообщения какому хочешь виджету, главное установить на виджет кому должно быть сообщение этот фильтр
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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