Тип QML Keys
Обеспечивает обработку нажатий клавиш для элементов. Подробнее...
| Заявление об импорте: | import QtQuick 2.12 |
Свойства
Сигналы
- 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)
Подробное описание
Все визуальные примитивы поддерживают обработку нажатий клавиш через свойство attached 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 для списка кодов клавиатуры.
Приоритеты обработки нажатий клавиш
Свойство attached Keys можно настроить для обработки событий нажатия клавиш до или после элемента, к которому оно прикреплено. Это позволяет перехватывать события для переопределения поведения элемента по умолчанию или служить резервным вариантом для клавиш, не обрабатываемых элементом.
Если priority равен Keys.BeforeItem (значение по умолчанию), порядок обработки событий нажатия клавиш таков:
- Элементы, указанные в
forwardTo - специфические обработчики клавиш, например, onReturnPressed
- обработчики onPressed, onReleased
- обработка нажатий клавиш, специфичная для элемента, например, TextInput
- родительский элемент
Если priority равен Keys.AfterItem, порядок обработки событий нажатия клавиш таков:
- обработка нажатий клавиш, специфичная для элемента, например, TextInput
- элементы, указанные в
forwardTo - специфические обработчики клавиш, например, onReturnPressed
- обработчики onPressed, onReleased
- родительский элемент
Если событие принимается на любом из вышеперечисленных этапов, распространение нажатия клавиши прекращается.
См. также KeyEvent и свойство attached KeyNavigation.
Документация по свойствам
enabled : bool
Этот флаг включает обработку нажатий клавиш, если значение true (по умолчанию); в противном случае обработчики нажатий клавиш не будут вызываться.
forwardTo : список<Объект>
Это свойство предоставляет способ перенаправить нажатия клавиш, отпускания клавиш и ввод с клавиатуры, поступающий от методов ввода, другим элементам. Это может быть полезно, когда вы хотите, чтобы один элемент обрабатывал некоторые клавиши (например, клавиши со стрелками вверх и вниз), а другой элемент обрабатывал другие клавиши (например, клавиши со стрелками влево и вправо). Как только элемент, которому были перенаправлены клавиши, примет событие, он больше не будет перенаправляться элементам, расположенным позже в списке.
В этом примере события нажатия клавиш перенаправляются в два списка:
Item {
ListView {
id: list1
// ...
}
ListView {
id: list2
// ...
}
Keys.forwardTo: [list1, list2]
focus: true
} Чтобы увидеть порядок получения событий при использовании forwardTo, см. Приоритеты обработки нажатий клавиш.
priority : перечисление
Это свойство определяет, обрабатываются ли клавиши до или после обработки нажатий клавиш самим прикрепленным элементом.
- Keys.BeforeItem (значение по умолчанию) - обрабатывает события нажатия клавиш перед обычной обработкой нажатий клавиш элементом. Если событие принимается, оно не будет передаваться элементу.
- Keys.AfterItem - обрабатывает события нажатия клавиш после обычной обработки нажатий клавиш элементом. Если элемент принимает событие нажатия клавиши, оно не будет обрабатываться обработчиком attached 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)
Этот сигнал испускается, когда нажата клавиша Enter. Параметр event содержит информацию об событии.
Соответствующий обработчик — onEnterPressed.
escapePressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша Escape. Параметр event содержит информацию об событии.
Соответствующий обработчик — onEscapePressed.
flipPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша Flip. Параметр event содержит информацию об событии.
Соответствующий обработчик — onFlipPressed.
hangupPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша Hangup. Параметр event содержит информацию об событии.
Соответствующий обработчик — onHangupPressed.
leftPressed(KeyEvent event)
Этот сигнал испускается, когда нажата стрелка влево. Параметр event содержит информацию об событии.
Соответствующий обработчик — onLeftPressed.
menuPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша Menu. Параметр event содержит информацию об событии.
Соответствующий обработчик — onMenuPressed.
noPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша No. Параметр event содержит информацию об событии.
Соответствующий обработчик — onNoPressed.
pressed(KeyEvent event)
Этот сигнал испускается, когда нажата какая-либо клавиша. Параметр event содержит информацию об событии.
Соответствующий обработчик — onPressed.
released(KeyEvent event)
Этот сигнал испускается, когда отпущена клавиша. Параметр event содержит информацию об событии.
Соответствующий обработчик — onReleased.
returnPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша Return. Параметр event содержит информацию об событии.
Соответствующий обработчик — onReturnPressed.
rightPressed(KeyEvent event)
Этот сигнал испускается, когда нажата стрелка вправо. Параметр event содержит информацию об событии.
Соответствующий обработчик — onRightPressed.
selectPressed(KeyEvent event)
Этот сигнал испускается, когда нажата клавиша Select. Параметр event содержит информацию об событии.
Соответствующий обработчик — onSelectPressed.
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-5.12/qml-qtquick-keys.html