Spec-Zone.ru › Qt 5.6

Тип QML KeyNavigation

Поддержка навигации по клавишам со стрелками Подробнее...

Оператор импорта: import QtQuick 2.5
  • Список всех членов, включая унаследованные

Свойства

  • 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/archives/qt-5.6/qml-qtquick-keynavigation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API