Тип QML Keys
Обеспечивает обработку клавиш для элементов. Подробнее...
| Заявление импорта: | import QtQuick 2.11 |
Свойства
Сигналы
- 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)
Этот сигнал излучается, когда нажата клавиша Back. Параметр event предоставляет информацию об событии.
Соответствующий обработчик - onBackPressed.
backtabPressed(KeyEvent event)
Этот сигнал излучается, когда нажата комбинация клавиш Shift+Tab (Backtab). Параметр event предоставляет информацию об событии.
Соответствующий обработчик - onBacktabPressed.
callPressed(KeyEvent event)
Этот сигнал излучается, когда нажата клавиша Call. Параметр event предоставляет информацию об событии.
Соответствующий обработчик - onCallPressed.
cancelPressed(KeyEvent event)
Этот сигнал излучается, когда нажата клавиша Cancel. Параметр 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/archives/qt-5.11/qml-qtquick-keys.html