Тип QML KeyNavigation
Поддержка навигации по клавишам со стрелками Подробнее...
| Заявление об импорте: | import QtQuick 2.7 |
Свойства
- 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.9/qml-qtquick-keynavigation.html