我想将RectangleRowLayout中从左到右对齐。在下面的代码示例中,两个Rectangle共享附加空间,而不是一个接一个地堆叠。我在Layout.alignment: Qt.AlignLeft级别和RowLayout级别使用了Rectangle,但是这两种方式中的任何一种都根本不会改变 View 。

Item {
    RowLayout {
        anchors.fill: parent
        spacing: 2


        Rectangle {
            width: 100
            Layout.fillHeight: true
            Layout.alignment: Qt.AlignLeft

            Text {
                text: "Hello world"
            }
        }

        Rectangle {
            width: 100
            Layout.fillHeight: true
            Layout.alignment: Qt.AlignLeft

            Text {
                text: "Hello world"
            }
        }
    }
}
在以下图像中,黑色边框表示RowLayout,红色边框表示Rectangle
实际的
qt - 如何在RowLayout中对齐项目-LMLPHP
预期的
qt - 如何在RowLayout中对齐项目-LMLPHP

最佳答案

该文档说明了有关Layout.alignment的信息:



您可以像下面这样简单地在末尾添加一个填充项:

RowLayout {
    anchors.fill: parent
    spacing: 2


    Rectangle {
        width: 100
        Layout.fillHeight: true
        Layout.alignment: Qt.AlignLeft
        color: 'red'

        Text {
            text: "Hello world"
        }
    }

    Rectangle {
        width: 100
        Layout.fillHeight: true
        Layout.alignment: Qt.AlignLeft
        color: 'green'

        Text {
            text: "Hello world"
        }
    }

    Item {
        Layout.fillWidth: true
    }
}

但也可以使用:
Row {
    anchors.fill: parent
    spacing: 2


    Rectangle {
        width: 100
        anchors {
            top: parent.top
            bottom: parent.bottom
        }

        color: 'red'

        Text {
            text: "Hello world"
        }
    }

    Rectangle {
        width: 100
        anchors {
            top: parent.top
            bottom: parent.bottom
        }
        color: 'green'

        Text {
            text: "Hello world"
        }
    }
}

关于qt - 如何在RowLayout中对齐项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47186980/

10-08 22:30