Russian Qt Forum

Qt => Общие вопросы => Тема начата: fulkabaster от Июнь 01, 2009, 17:20



Название: QKeyEvent->key() и русская раскладка
Отправлено: fulkabaster от Июнь 01, 2009, 17:20
Приложение реагирует на нажатие некоторых клавиш, например Q и S, перегрузил функцию keyPressEvent и в ней с помощью оператора switch определяю код клавиш. Если это Qt::Key_S и Qt::Key_Q, то делается что нужно. Все работает, только если раскладка включена английская. Если русская - не реагирует. Странно, код клавиши зависит от раскладки? Как быть, чтобы приложение работало при любой раскладке?


Название: Re: QKeyEvent->key() и русская раскладка
Отправлено: Alex Custov от Июнь 01, 2009, 19:09
QKeyEvent::nativeScanCode() ?


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


Название: Re: QKeyEvent->key() и русская раскладка
Отправлено: EhTemka от Июнь 02, 2009, 17:47

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

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

 Я столкнулся с подобной проблемой при установке горячих клавиш. Не работает под линуксом и под маком при русской раскладке. Под виндой все нормально. Общался на эту тему с троллями, сказали, что знают о проблеме, посоветовали пользоваться переводами. Сам пока не пробовал.


Название: Re: QKeyEvent->key() и русская раскладка
Отправлено: fulkabaster от Июнь 03, 2009, 07:19
У меня и в винде не работает, и в линуксе, под русской раскладкой.
При этом я юзаю шорткаты без Alt, т.е. просто буквенные клавиши жму.
Не понимаю здесь логику троллей. Зачем было привязываться к раскладке...

P.S.
Что такое переводы?


Название: Re: QKeyEvent->key() и русская раскладка
Отправлено: lit-uriy от Июнь 03, 2009, 08:58
>>Что такое переводы?
Оберни горячие кнопки в функцию tr();
создай ts-файл для целевого языка;
переведи его и сделай qm-файл
загружай этот qm-файл в свою программу.


Название: Re: QKeyEvent->key() и русская раскладка
Отправлено: fulkabaster от Июнь 06, 2009, 14:56
Н-да, как-то сложновато будет, ради такой простой задачки. Неужели никак без переводов нельзя?
Почему-таки не получается с помощью QKeyEvent->nativeScanCode() ?


Название: Re: QKeyEvent->key() и русская раскладка
Отправлено: billy4685 от Февраль 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.


Название: Re: QKeyEvent->key() и русская раскладка
Отправлено: Bepec от Февраль 05, 2015, 10:52
Работайте под виндой и будет вам счастье :D