1

我正在编写一个应该支持 RTL 和 LTR 语言的 qml 应用程序,并且界面需要一些灵活,并且锚点可能不会产生好的 UI

所以我计划使用 qml Grid、Column 和 RowLayout,它们工作得很好,但在我使用时没有得到镜像

LayoutMirroring.enabled: true
LayoutMirroring.childrenInherit: true

有什么方法可以将这些布局组件与LayoutMirroring.enabled: true一起使用 ,如果没有,如何设置 qml 定位器(行、列和网格)的宽度和高度来填充边界项的宽度和高度

4

2 回答 2

1

在 Qt 5.2 RowLayout、ColumnLayout 和 GridLayout 中有 layoutDirection 属性来支持 RTL 布局

于 2014-11-04T13:39:02.980 回答
1

LayoutMirroring 不适用于 RowLayout、ColumnLayout 或 GridLayout。您可以改用 Row[View]、Column[View] 或 Grid[View]。有关详细信息,请参阅http://qt-project.org/doc/qt-5.1/qtquick/qml-qtquick2-layoutmirroring.html

这是 qml 定位器的一个简单示例:

Rectangle {
    width: 640
    height: 480
    color: "#303030"

    Rectangle {
        width: parent.width / 1.1
        height: parent.height / 1.1
        anchors.centerIn: parent
        color: "white"

        Grid {
            id: grid
            anchors.fill: parent

            columns: 2

            spacing: 6
            columnSpacing: spacing
            rowSpacing: spacing


            property int rowCount: Math.ceil(visibleChildren.length / columns)
            property real cellWidth: (width - (columns - 1) * columnSpacing) / columns
            property real cellHeight: (height - (rowCount - 1) * rowSpacing) / rowCount

            Rectangle {
                color: "#aa6666"
                width: grid.cellWidth
                height: grid.cellHeight
            }
            Rectangle {
                color: "#aaaa66"
                width: grid.cellWidth
                height: grid.cellHeight
            }
            Rectangle {
                color: "#9999aa"
                width: grid.cellWidth
                height: grid.cellHeight
            }
            Rectangle {
                color: "#6666aa"
                width: grid.cellWidth
                height: grid.cellHeight
            }
        }
    }
}

更改列数并添加或删除一些矩形,看看它是否有效。

于 2013-09-24T16:00:20.373 回答