Тип QML Keys
Обеспечивает обработку нажатий клавиш для элементов. Подробнее...
| Заявление импорта: | import QtQuick 2.15 |
Свойства
Сигналы
- 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 property 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 property 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.15/qml-qtquick-keys.html