Тип QML Keys
Обеспечивает обработку нажатий клавиш для элементов. Подробнее...
| Заявление импорта: | import QtQuick 2.0 |
Свойства
Сигналы
- asteriskPressed(KeyEvent event)
- backPressed(KeyEvent event)
- backtabPressed(KeyEvent event)
- callPressed(KeyEvent event)
- cancelPressed(KeyEvent event)
- context1Pressed(KeyEvent event)
- context2Pressed(KeyEvent event)
- context3Pressed(KeyEvent event)
- context4Pressed(KeyEvent event)
- deletePressed(KeyEvent event)
- digit0Pressed(KeyEvent event)
- digit1Pressed(KeyEvent event)
- digit2Pressed(KeyEvent event)
- digit3Pressed(KeyEvent event)
- digit4Pressed(KeyEvent event)
- digit5Pressed(KeyEvent event)
- digit6Pressed(KeyEvent event)
- digit7Pressed(KeyEvent event)
- digit8Pressed(KeyEvent event)
- digit9Pressed(KeyEvent event)
- downPressed(KeyEvent event)
- enterPressed(KeyEvent event)
- escapePressed(KeyEvent event)
- flipPressed(KeyEvent event)
- hangupPressed(KeyEvent event)
- leftPressed(KeyEvent event)
- menuPressed(KeyEvent event)
- noPressed(KeyEvent event)
- pressed(KeyEvent event)
- released(KeyEvent event)
- returnPressed(KeyEvent event)
- rightPressed(KeyEvent event)
- selectPressed(KeyEvent event)
- shortcutOverride(KeyEvent event)
- spacePressed(KeyEvent event)
- tabPressed(KeyEvent event)
- upPressed(KeyEvent event)
- volumeDownPressed(KeyEvent event)
- volumeUpPressed(KeyEvent event)
- yesPressed(KeyEvent event)
Подробное описание
Все визуальные примитивы поддерживают обработку нажатий клавиш с помощью присоединённого свойства Keys. Нажатия клавиш можно обрабатывать с помощью сигнальных свойств onPressed и onReleased.
Сигнальные свойства имеют параметр KeyEvent, именованный event, который содержит подробности события. Если нажатие клавиши обработано, event.accepted должно быть установлено в true, чтобы предотвратить распространение события вверх по иерархии элементов.
Пример использования
Следующий пример показывает, как можно использовать общий обработчик onPressed для проверки нажатия определённой клавиши; в этом случае левой клавиши курсора:
Item {
anchors.fill: parent
focus: true
Keys.onPressed: {
if (event.key == Qt.Key_Left) {
console.log("move left");
event.accepted = true;
}
}
} Некоторые клавиши могут альтернативно обрабатываться с помощью специальных сигнальных свойств, например, onSelectPressed. Эти обработчики автоматически устанавливают event.accepted в true.
Item {
anchors.fill: parent
focus: true
Keys.onLeftPressed: console.log("move left")
} См. Qt.Key для списка кодов клавиатуры.
Приоритеты обработки нажатий клавиш
Свойство Keys, присоединённое к элементу, можно настроить для обработки нажатий клавиш до или после элемента, к которому оно прикреплено. Это позволяет перехватывать события, чтобы переопределить поведение элемента по умолчанию или действовать как резервный вариант для клавиш, не обрабатываемых элементом.
Если priority равно Keys.BeforeItem (по умолчанию), порядок обработки событий нажатия клавиш:
- Элементы, указанные в
forwardTo - специфические обработчики клавиш, например, onReturnPressed
- обработчики onPressed, onReleased
- обработка нажатий клавиш специфичных для элемента, например, TextInput
- родительский элемент
Если priority равно Keys.AfterItem, порядок обработки событий нажатия клавиш:
- обработка нажатий клавиш специфичных для элемента, например, TextInput
- Элементы, указанные в
forwardTo - специфические обработчики клавиш, например, onReturnPressed
- обработчики onPressed, onReleased
- родительский элемент
Если событие принимается на любом из вышеуказанных шагов, распространение нажатия клавиш прекращается.
См. также KeyEvent и присоединённое свойство KeyNavigation.
Документация свойств
enabled : bool
Этот флаг включает обработку нажатий клавиш, если true (по умолчанию); в противном случае обработчики нажатий клавиш не будут вызываться.
forwardTo : список<Объект>
Это свойство предоставляет способ перенаправления нажатий клавиш, отпусканий клавиш и ввода с клавиатуры от методов ввода другим элементам. Это может быть полезно, когда вы хотите, чтобы один элемент обрабатывал некоторые клавиши (например, клавиши со стрелками вверх и вниз), а другой элемент обрабатывал другие клавиши (например, клавиши со стрелками влево и вправо). После того, как элемент, которому были перенаправлены клавиши, принял событие, он больше не перенаправляется элементам, расположенным позже в списке.
В этом примере события нажатий клавиш перенаправляются двум спискам:
Item {
ListView {
id: list1
// ...
}
ListView {
id: list2
// ...
}
Keys.forwardTo: [list1, list2]
focus: true
} Чтобы увидеть порядок, в котором события принимаются при использовании forwardTo, см. Приоритеты обработки нажатий клавиш.
priority : перечисление
Это свойство определяет, обрабатываются ли клавиши до или после обработки нажатий клавиш элемента, к которому они присоединены.
- Keys.BeforeItem (по умолчанию) - обработка событий нажатия клавиш до нормальной обработки нажатий клавиш элемента. Если событие принимается, оно не передаётся элементу.
- Keys.AfterItem - обработка событий нажатия клавиш после нормальной обработки нажатий клавиш элемента. Если элемент принимает событие нажатия клавиши, оно не обрабатывается обработчиком присоединённого свойства Keys.
См. также Приоритеты обработки нажатий клавиш.
Документация сигналов
asteriskPressed(KeyEvent event)
Этот сигнал излучается при нажатии звёздочки «*». Параметр event содержит информацию о событии.
Примечание: Соответствующий обработчик — onAsteriskPressed.
backPressed(KeyEvent event)
Этот сигнал излучается при нажатии клавиши «Назад». Параметр event содержит информацию о событии.
Примечание: Соответствующий обработчик — onBackPressed.
backtabPressed(KeyEvent event)
Этот сигнал излучается при нажатии комбинации клавиш Shift+Tab (Backtab). Параметр event содержит информацию о событии.
Примечание: Соответствующий обработчик — onBacktabPressed.
callPressed(KeyEvent event)
Этот сигнал излучается при нажатии клавиши «Вызов». Параметр event содержит информацию о событии.
Примечание: Соответствующий обработчик — onCallPressed.
cancelPressed(KeyEvent event)
Этот сигнал излучается при нажатии клавиши «Отмена». Параметр event содержит информацию о событии.
Примечание: Соответствующий обработчик — onCancelPressed.
context1Pressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Context1. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onContext1Pressed.
context2Pressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Context2. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onContext2Pressed.
context3Pressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Context3. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onContext3Pressed.
context4Pressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Context4. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onContext4Pressed.
deletePressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Delete. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDeletePressed.
digit0Pressed(KeyEvent event)
Этот сигнал испускается при нажатии цифровой клавиши '0'. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDigit0Pressed.
digit1Pressed(KeyEvent event)
Этот сигнал испускается при нажатии цифровой клавиши '1'. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDigit1Pressed.
digit2Pressed(KeyEvent event)
Этот сигнал испускается при нажатии цифровой клавиши '2'. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDigit2Pressed.
digit3Pressed(KeyEvent event)
Этот сигнал испускается при нажатии цифровой клавиши '3'. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDigit3Pressed.
digit4Pressed(KeyEvent event)
Этот сигнал испускается при нажатии цифровой клавиши '4'. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDigit4Pressed.
digit5Pressed(KeyEvent event)
Этот сигнал испускается при нажатии цифровой клавиши '5'. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDigit5Pressed.
digit6Pressed(KeyEvent event)
Этот сигнал испускается при нажатии цифровой клавиши '6'. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDigit6Pressed.
digit7Pressed(KeyEvent event)
Этот сигнал испускается при нажатии цифровой клавиши '7'. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDigit7Pressed.
digit8Pressed(KeyEvent event)
Этот сигнал испускается при нажатии цифровой клавиши '8'. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDigit8Pressed.
digit9Pressed(KeyEvent event)
Этот сигнал испускается при нажатии цифровой клавиши '9'. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDigit9Pressed.
downPressed(KeyEvent event)
Этот сигнал испускается при нажатии стрелки вниз. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onDownPressed.
enterPressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Ввод. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onEnterPressed.
escapePressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Esc. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onEscapePressed.
flipPressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Flip. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onFlipPressed.
hangupPressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Отбой. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onHangupPressed.
leftPressed(KeyEvent event)
Этот сигнал испускается при нажатии стрелки влево. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onLeftPressed.
menuPressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Меню. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onMenuPressed.
noPressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Нет. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onNoPressed.
pressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onPressed.
released(KeyEvent event)
Этот сигнал испускается при отпускании клавиши. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onReleased.
returnPressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Возврат. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onReturnPressed.
rightPressed(KeyEvent event)
Этот сигнал испускается при нажатии стрелки вправо. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onRightPressed.
selectPressed(KeyEvent event)
Этот сигнал испускается при нажатии клавиши Выбор. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onSelectPressed.
[since 5.9] shortcutOverride(KeyEvent event)
Этот сигнал испускается при нажатии клавиши, которая потенциально может использоваться как сочетание клавиш. Параметр event содержит информацию об событии.
Установите event.accepted в true, если вы хотите предотвратить использование нажатой клавиши как сочетания клавиш другими типами, такими как Shortcut. Например:
Item {
id: escapeItem
focus: true
// Ensure that we get escape key press events first.
Keys.onShortcutOverride: event.accepted = (event.key === Qt.Key_Escape)
Keys.onEscapePressed: {
console.log("escapeItem is handling escape");
// event.accepted is set to true by default for the specific key handlers
}
}
Shortcut {
sequence: "Escape"
onActivated: console.log("Shortcut is handling escape")
} Как и в других сигналах, shortcutOverride будет испускаться только для элемента, если у этого элемента есть activeFocus.
Примечание: Соответствующий обработчик — onShortcutOverride.
Этот сигнал был добавлен в Qt 5.9.
См. также Shortcut.
spacePressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша Пробел. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onSpacePressed.
tabPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша Tab. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onTabPressed.
upPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша вверх. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onUpPressed.
volumeDownPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша уменьшения громкости. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onVolumeDownPressed.
volumeUpPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша увеличения громкости. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onVolumeUpPressed.
yesPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша Да. Параметр event содержит информацию об событии.
Примечание: Соответствующий обработчик — onYesPressed.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qml-qtquick-keys.html