Тип QML KeyEvent
Предоставляет информацию о событии нажатия клавиши. Подробнее...
| Заявление об импорте: | import QtQuick 2.12 |
Свойства
- accepted : bool
- count : int
- isAutoRepeat : bool
- key : int
- modifiers : int
- nativeScanCode : quint32
- text : string
Методы
- bool matches(StandardKey key)
Подробное описание
Например, следующие действия изменяют свойство состояния элемента Item при нажатии клавиши Enter:
Item {
focus: true
Keys.onPressed: { if (event.key == Qt.Key_Enter) state = 'ShowDetails'; }
} Документация по свойствам
accepted : bool
Установка accepted в значение true предотвращает распространение события нажатия клавиши на родительский элемент.
Как правило, если элемент реагирует на событие нажатия клавиши, то оно должно быть принято, чтобы родительские элементы также не реагировали на это же событие.
count : int
Это свойство содержит количество клавиш, участвующих в данном событии. Если KeyEvent::text не пусто, это просто длина строки.
isAutoRepeat : bool
Это свойство указывает, происходит ли данное событие от автоматического повторения нажатия клавиши.
key : int
Это свойство содержит код нажатой или отпущенной клавиши.
См. Qt.Key для списка кодов клавиш. Эти коды независимы от базовой системы окон. Обратите внимание, что эта функция не различает прописные и строчные буквы; для этой цели используйте свойство text.
Значение 0 или Qt.Key_Unknown означает, что событие не является результатом нажатия известной клавиши; например, оно может быть результатом последовательности составных символов, макроса клавиатуры или сжатия события нажатия клавиши.
modifiers : int
Это свойство содержит флаги модификаторов клавиатуры, которые существовали непосредственно перед возникновением события.
В нем содержится битовое сочетание:
- Qt.NoModifier - Ни одна клавиша-модификатор не нажата.
- Qt.ShiftModifier - Нажата клавиша Shift на клавиатуре.
- Qt.ControlModifier - Нажата клавиша Ctrl на клавиатуре.
- Qt.AltModifier - Нажата клавиша Alt на клавиатуре.
- Qt.MetaModifier - Нажата клавиша Meta на клавиатуре.
- Qt.KeypadModifier - Нажата кнопка на цифровой клавиатуре.
- Qt.GroupSwitchModifier - Только X11. Нажата клавиша переключения режимов на клавиатуре.
Например, для реакции на комбинацию клавиш Shift + Enter:
Item {
focus: true
Keys.onPressed: {
if ((event.key == Qt.Key_Enter) && (event.modifiers & Qt.ShiftModifier))
doSomething();
}
} nativeScanCode : quint32
Это свойство содержит родной код сканирования клавиши, которая была нажата. Оно передается из QKeyEvent без изменений.
См. также QKeyEvent::nativeScanCode().
text : string
Это свойство содержит текстовое представление Юникода, сгенерированное клавишей. Возвращаемый текст может быть пустой строкой в тех случаях, когда нажаты или отпущены клавиши-модификаторы, такие как Shift, Control, Alt и Meta. В таких случаях key будет содержать действительное значение
Документация по методам
bool matches(StandardKey key)
Возвращает true если событие нажатия клавиши соответствует заданной стандартной клавише key; в противном случае возвращает false.
Item {
focus: true
Keys.onPressed: {
if (event.matches(StandardKey.Undo))
myModel.undo();
else if (event.matches(StandardKey.Redo))
myModel.redo();
}
} Этот метод был введен в Qt 5.2.
См. также QKeySequence::StandardKey.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qml-qtquick-keyevent.html