Spec-Zone.ru › Qt 5.11

Тип QML KeyNavigation

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

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

Свойства

  • 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.11/qml-qtquick-keynavigation.html

Spec-Zone.ru

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