Spec-Zone.ru › Qt 6.1

Тип QML KeyNavigation

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

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

Свойства

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

Spec-Zone.ru

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