KeyNavigation QML 类型

支持通过箭头键进行键导航。 更多...

导入语句import QtQuick

附加属性

详细描述

基于键的用户界面通常允许使用箭头键在可聚焦项之间导航。KeyNavigation 附加属性通过提供一种方便的方式来指定在按下箭头键或制表键时应该获得焦点的项,从而实现了这种行为。

以下示例为 2x2 项网格提供了键导航

import QtQuick

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 leftrightupdown 属性设置的值定义的适当项。

请注意,如果 KeyNavigation 附加属性收到请求的箭头键或制表键的按键和释放事件,则事件将被接受,并且不会进一步传播。

默认情况下,KeyNavigation 在附加到其上的项之后接收按键事件。如果项接受按键事件,则该键不会向 KeyNavigation 附加属性传递事件。将 priority 属性设置为 KeyNavigation.BeforeItem 允许在项之前而不是之后使用事件进行键导航。

如果要切换焦点的项未启用或不可见,则将尝试跳过此项并聚焦到下一个项。如果有一系列具有相同 KeyNavigation 处理器的项,则这是可能的。如果行中的多个项均未启用或不可见,它们也将被跳过。

KeyNavigation 将会隐式设置其他方向返回焦点到该项目。所以如果您将 left 设置到另一个项目,right 将会在该项目的 KeyNavigation 中被设置,以便将焦点返回到该项目。然而,如果那个项目的 KeyNavigation 已经显式设置了 right,则不会有任何变化。这意味着上述示例可以在不需要指定任何项目的 KeyNavigation.right 或 KeyNavigation.down 的情况下实现相同的行为。

也请参阅 Keys 附加属性

附加属性文档

KeyNavigation.backtab : Item

该属性用于在按住 Shift+Tab 键组合 (Backtab) 时分配焦点。


KeyNavigation.down : Item

当按下向下光标键时,该属性将分配焦点。


KeyNavigation.left : Item

当按下向左光标键时,该属性将分配焦点。


KeyNavigation.priority : 枚举

该属性确定键是否在附加项的键处理前或之后进行调用。

常量描述
KeyNavigation.BeforeItem在正常的项目键处理前处理键事件。如果是用于键导航的事件,它将被接受而不会传递给项目。
KeyNavigation.AfterItem(默认) 在正常的项目键处理后处理键事件。如果项目接受了键事件,则它不会被 KeyNavigation 附加属性处理器处理。

KeyNavigation.right : Item

当按下向右光标键时,该属性将分配焦点。


KeyNavigation.tab : Item

当按下 Tab 键时,该属性将分配焦点。


KeyNavigation.up : Item

当按下向上光标键时,该属性将分配焦点。


© 2024 Qt 公司有限公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款进行许可的。Qt 和相关商标是芬兰的 Qt 公司及其在全世界范围内的商标。所有其他商标均为其各自所有者的财产。