Spec-Zone.ru › Qt 5.15

Тип QML KeyNavigation

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

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

Свойства

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

Spec-Zone.ru

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