Spec-Zone.ru › Qt 6.0

Тип QML KeyNavigation

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

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

Свойства

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

Spec-Zone.ru

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