Тип QML KeyNavigation
Поддержка навигации по клавишам со стрелками. Подробнее...
| Заявление об импорте: | import QtQuick |
Присоединённые свойства
- 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 этого элемента explicitly установлен right, никаких изменений не произойдет. Это означает, что пример выше мог бы добиться того же поведения, не указывая KeyNavigation.right или KeyNavigation.down для любого из элементов.
См. также Присоединённое свойство Keys.
Документация присоединённых свойств
KeyNavigation.backtab : Элемент
Это свойство содержит элемент, которому будет назначен фокус при нажатии сочетания клавиш Shift+Tab (Backtab).
KeyNavigation.down : Элемент
Это свойство содержит элемент, которому будет назначен фокус при нажатии клавиши вниз.
KeyNavigation.left : Элемент
Это свойство содержит элемент, которому будет назначен фокус при нажатии клавиши влево.
KeyNavigation.priority : перечисление
Это свойство определяет, будут ли клавиши обрабатываться до или после обработки клавиш самого присоединённого элемента.
- KeyNavigation.BeforeItem - обработать события клавиш до обычной обработки событий клавиш элемента. Если событие используется для навигации по клавишам, оно будет принято и не будет передано элементу.
- KeyNavigation.AfterItem (по умолчанию) - обработать события клавиш после обычной обработки событий клавиш элемента. Если элемент принимает событие клавиши, оно не будет обработано обработчиком присоединённого свойства KeyNavigation.
KeyNavigation.right : Элемент
Это свойство содержит элемент, которому будет назначен фокус при нажатии клавиши вправо.
KeyNavigation.tab : Элемент
Это свойство содержит элемент, которому будет назначен фокус при нажатии клавиши Tab.
KeyNavigation.up : Элемент
Это свойство содержит элемент, которому будет назначен фокус при нажатии клавиши вверх.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtquick-keynavigation.html