布局镜像 QML 类型

用于镜像布局行为的属性。 更多...

导入语句import QtQuick

属性

详细信息

LayoutMirroring 连接属性用于水平镜像 Item 锚点定位器 类型(如 RowGrid)和视图(如 GridView 和水平 ListView)。镜像是一个视觉变化:左锚点变为右锚点,定位器类型如 GridRow 将子项的水平布局反向。

通过将 enabled 属性设置为 true,为项目启用镜像。默认情况下,这仅影响项目本身;将 childrenInherit 属性设置为 true 将将镜像行为传播到所有子项。如果没有为项目定义 LayoutMirroring 连接属性,则不启用镜像。

注意:自 Qt 5.8 以来,LayoutMirroring 可以连接到 Window。实际上,它与连接到窗口的 contentItem 是相同的。

以下示例展示了镜像的效果。下面的 Row 被指定为连接到其父元素的左侧。但是,由于已启用镜像,锚点水平反转,现在连接到右侧。此外,由于 Row 中的项默认从左到右定位,因此它们现在从右到左定位,正如项目编号和透明度所示。

import QtQuick

Rectangle {
    LayoutMirroring.enabled: true
    LayoutMirroring.childrenInherit: true

    width: 300; height: 50
    color: "yellow"
    border.width: 1

    Row {
        anchors { left: parent.left; margins: 5 }
        y: 5; spacing: 5

        Repeater {
            model: 5

            Rectangle {
                color: "red"
                opacity: (5 - index) / 5
                width: 40; height: 40

                Text {
                    text: index + 1
                    anchors.centerIn: parent
                }
            }
        }
    }
}

布局镜像非常有用,当需要支持从左到右和从右到左布局的应用版本以针对不同的语言区域时。属性 childrenInherit 允许布局镜像应用于一个应用中每个项的布局配置而无需手动设置。然而,请记住,镜像不会影响由 Item x 坐标值定义的位置,因此在启用镜像的情况下,通常还需要应用一些布局修正以支持所需的布局方向。此外,如果镜像不是期望的行为,或者子项已经以某种自定义方式实现了镜像,则可能需要禁用个别子项的镜像(通过将 LayoutMirroring.enabled 设置为 false 对于这样的项)。

要基于应用的 默认布局方向 设置布局方向,请使用以下代码:

LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft

有关使用 LayoutMirroring 和其他相关功能实现应用对右到左支持的其他详细信息,请参阅右到左用户界面

属性文档

childrenInherit : bool

此属性指示该项的 LayoutMirroring.enabled 值是否由其子项继承。

默认值是 false。


enabled : bool

此属性指示该项的布局是否水平镜像。将其设置为 true 会水平反转 锚点 设置,使左侧锚点变为右侧,右侧锚点变为左侧。对于 定位器 类型(如 RowGrid)和视图类型(如 GridViewListView),这也会反转项的水平布局方向。

默认值是 false。


© 2024 Qt公司有限公司。此处包含的文档贡献的版权属于各自的所有者。此处提供的文档是根据自由软件基金会根据 GNU自由文档许可证第1.3版 发布的条款许可的。Qt 和相关标志是芬兰的 Qt公司及其在全球的子公司和关联公司的 商标。所有其他商标属于其各自的所有者。