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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QKeyEvent->key() и русская раскладка  (Прочитано 10121 раз)
fulkabaster
Гость
« : Июнь 01, 2009, 17:20 »

Приложение реагирует на нажатие некоторых клавиш, например Q и S, перегрузил функцию keyPressEvent и в ней с помощью оператора switch определяю код клавиш. Если это Qt::Key_S и Qt::Key_Q, то делается что нужно. Все работает, только если раскладка включена английская. Если русская - не реагирует. Странно, код клавиши зависит от раскладки? Как быть, чтобы приложение работало при любой раскладке?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #1 : Июнь 01, 2009, 19:09 »

QKeyEvent::nativeScanCode() ?
Записан
fulkabaster
Гость
« Ответ #2 : Июнь 01, 2009, 19:40 »

что-то не могу понять, как она работает. В мануале описание скудное.
В операторе switch вместо QKeyEvent->key() прописал QKeyEvent->nativeScanCode(), и дальше указываю скан-коды клавиш Q и S (17 и 32, судя по http://www.barcodeman.com/altek/mule/scandoc.php). Не работает.
Записан
EhTemka
Гость
« Ответ #3 : Июнь 02, 2009, 17:47 »


И похоже не будет...

Тут обсуждалось немного
http://www.prog.org.ru/topic_9056_0.html

 Я столкнулся с подобной проблемой при установке горячих клавиш. Не работает под линуксом и под маком при русской раскладке. Под виндой все нормально. Общался на эту тему с троллями, сказали, что знают о проблеме, посоветовали пользоваться переводами. Сам пока не пробовал.
Записан
fulkabaster
Гость
« Ответ #4 : Июнь 03, 2009, 07:19 »

У меня и в винде не работает, и в линуксе, под русской раскладкой.
При этом я юзаю шорткаты без Alt, т.е. просто буквенные клавиши жму.
Не понимаю здесь логику троллей. Зачем было привязываться к раскладке...

P.S.
Что такое переводы?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Июнь 03, 2009, 08:58 »

>>Что такое переводы?
Оберни горячие кнопки в функцию tr();
создай ts-файл для целевого языка;
переведи его и сделай qm-файл
загружай этот qm-файл в свою программу.
Записан

Юра.
fulkabaster
Гость
« Ответ #6 : Июнь 06, 2009, 14:56 »

Н-да, как-то сложновато будет, ради такой простой задачки. Неужели никак без переводов нельзя?
Почему-таки не получается с помощью QKeyEvent->nativeScanCode() ?
Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


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

что-то не могу понять, как она работает. В мануале описание скудное.
В операторе switch вместо QKeyEvent->key() прописал QKeyEvent->nativeScanCode(), и дальше указываю скан-коды клавиш Q и S (17 и 32, судя по http://www.barcodeman.com/altek/mule/scandoc.php). Не работает.


У меня в Windows 7 qDebug() << QKeyEvent->nativeScanCode(); при нажатии на клавиши Q и S выдает соответственно код 16 и 31.
Записан
Bepec
Гость
« Ответ #8 : Февраль 05, 2015, 10:52 »

Работайте под виндой и будет вам счастье Веселый
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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