Тип QML KeyNavigation
Поддержка навигации по клавишам со стрелками. Подробнее...
| Заявление об импорте: | import QtQuick 2.14 |
Свойства
- backtab : Элемент
- down : Элемент
- left : Элемент
- priority : перечисление
- right : Элемент
- tab : Элемент
- up : Элемент
Подробное описание
Пользовательские интерфейсы, основанные на клавишах, обычно позволяют использовать клавиши со стрелками для навигации между элементами, которые можно сфокусировать. Присоединённое свойство KeyNavigation обеспечивает это поведение, предоставляя удобный способ указать элемент, который должен получить фокус при нажатии клавиши со стрелкой или клавиши Tab.
Следующий пример обеспечивает навигацию по клавишам для сетки из 2x2 элементов:
import QtQuick 2.0
Grid {
width: 100; height: 100
columns: 2
Rectangle {
id: topLeft
width: 50; height: 50
color: focus ? "red" : "lightgray"
focus: true
KeyNavigation.right: topRight
KeyNavigation.down: bottomLeft
}
Rectangle {
id: topRight
width: 50; height: 50
color: focus ? "red" : "lightgray"
KeyNavigation.left: topLeft
KeyNavigation.down: bottomRight
}
Rectangle {
id: bottomLeft
width: 50; height: 50
color: focus ? "red" : "lightgray"
KeyNavigation.right: bottomRight
KeyNavigation.up: topLeft
}
Rectangle {
id: bottomRight
width: 50; height: 50
color: focus ? "red" : "lightgray"
KeyNavigation.left: bottomLeft
KeyNavigation.up: topRight
}
} Левый верхний элемент первоначально получает фокус, установив focus на true. При нажатии клавиши со стрелкой фокус переместится на соответствующий элемент, как определено значением, заданным для свойств KeyNavigation left, right, up или down.
Обратите внимание, что если присоединенное свойство KeyNavigation получает события нажатия и отпускания клавиши для запрошенной клавиши со стрелкой или клавиши Tab, событие принимается и не распространяется дальше.
По умолчанию KeyNavigation получает события нажатия клавиш после элемента, к которому оно присоединено. Если элемент принимает событие нажатия клавиши, присоединённое свойство KeyNavigation не получит событие для этой клавиши. Установка свойства priority на KeyNavigation.BeforeItem позволяет использовать событие для навигации по клавишам до элемента, а не после.
Если элемент, на который переключается фокус, не активен или не виден, будет предпринята попытка пропустить этот элемент и сфокусироваться на следующем. Это возможно, если существует цепочка элементов с тем же обработчиком KeyNavigation. Если несколько элементов подряд не активны или не видны, они также будут пропущены.
KeyNavigation неявно установит другое направление, чтобы вернуть фокус в этот элемент. Таким образом, если вы установите left для другого элемента, right будет установлено в обработчике KeyNavigation этого элемента, чтобы вернуть фокус в этот элемент. Однако, если в обработчике KeyNavigation этого элемента right был явно установлен, никаких изменений не произойдёт. Это означает, что пример выше мог бы добиться того же поведения, не указывая KeyNavigation.right или KeyNavigation.down для любого из элементов.
См. также Присоединённое свойство Keys.
Документация по свойствам
backtab : Элемент
Это свойство содержит элемент, которому необходимо назначить фокус при нажатии комбинации клавиш Shift+Tab (Backtab).
down : Элемент
Это свойство содержит элемент, которому необходимо назначить фокус при нажатии клавиши со стрелкой вниз.
left : Элемент
Это свойство содержит элемент, которому необходимо назначить фокус при нажатии клавиши со стрелкой влево.
priority : перечисление
Это свойство определяет, обрабатываются ли клавиши до или после обработки клавиш элемента, к которому они присоединены.
- KeyNavigation.BeforeItem - обработка событий нажатия клавиш до обычной обработки нажатия клавиш элементом. Если событие используется для навигации по клавишам, оно будет принято и не будет передано элементу.
- KeyNavigation.AfterItem (по умолчанию) - обработка событий нажатия клавиш после обычной обработки нажатия клавиш элементом. Если элемент принимает событие нажатия клавиши, оно не будет обработано обработчиком присоединённого свойства KeyNavigation.
right : Элемент
Это свойство содержит элемент, которому необходимо назначить фокус при нажатии клавиши со стрелкой вправо.
tab : Элемент
Это свойство содержит элемент, которому необходимо назначить фокус при нажатии клавиши Tab.
up : Элемент
Это свойство содержит элемент, которому необходимо назначить фокус при нажатии клавиши со стрелкой вверх.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtquick-keynavigation.html