Russian Qt Forum

Qt => Общие вопросы => Тема начата: ecspertiza от Апрель 14, 2014, 10:07



Название: Свои клавиши модификаторы
Отправлено: ecspertiza от Апрель 14, 2014, 10:07
Название темы скорее всего очень странно, но лучше не придумал :)  К вопросу зайду из далека, в Qt есть клавиши модификаторы (Shift, Ctrl, Alt) мы можем отследить их состояние через

Код:
QGuiApplication::keyboardModifiers()

или

Код:
QApplication::keyboardModifiers()

я хочу добавить свою клавишу к этому списку (или сделать похожий функционал). Нужно отслеживать зажата ли клавиша "Пробел" в данный момент времени или нет. Понимаю, что есть ф-ции keyPressEvent и keyReleaseEvent которые я могу переопределить, но если я зажму и буду держать пробел, то эти функции будут вызываться постоянно как если бы я судорожно кликал по клавишам. Поэтому таким способом отловить состояние нормально не получается. Какие еще могут быть варианты ?


Название: Re: Свои клавиши модификаторы
Отправлено: Bepec от Апрель 14, 2014, 10:16
Будут вызываться постоянно, но это не помешает. У QKeyEvent есть метод "isAutoRepeat () ", который как раз и позволяет пропускать фигню типа зажали и держат.
Таким образом, всё у вас получится.

PS сам такое делал.