Тип KeyEvent QML
Предоставляет информацию о событии нажатия клавиши. Подробнее...
| Заявление об импорте: | import QtQuick 2.15 |
Свойства
- 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
Это свойство содержит текстовое представление Unicode, сгенерированное клавишей. Возвращаемый текст может быть пустой строкой в случаях, когда нажаты или отпущены клавиши-модификаторы, такие как 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.15/qml-qtquick-keyevent.html