QML:在布局中设置按钮大小的问题

问题描述 投票:0回答:1

我在 qml 中有这个应用程序页面:

Image {
    source: "file:///C:/Users/image.jpg"
    fillMode: Image.PreserveAspectCrop

    Rectangle {
        width: parent.width/3
        height: parent.height/3
        anchors.centerIn: parent
        radius: 5

        ColumnLayout {
            width: parent.width * 0.5
            height: parent.height * 0.5
            anchors.centerIn: parent

            //some components here ...

            Button {
                //width: 100   nothing changes in the app
                Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom

                style: ButtonStyle {
                    background: Rectangle {
                        color: "blue"
                        radius: 15
                        //width: 100   nothing changes in the app
                    }
                    label: Text {
                        text: qsTr("Button")
                        color: "white"
                    }
                }
            }
        }
    }
}

现在我尝试设置按钮的大小(宽度和高度),因此这取决于父级(布局)的大小,例如

width: parent * 0.4
。我可能尝试了代码中宽度语句的所有可能位置,但是当我运行应用程序时,按钮的大小永远不会改变。我还尝试将大小设置为特定数字,而不是将其绑定到父级,仍然没有任何结果。

那么这里可能存在什么问题呢?应该在哪里以及如何定义按钮大小,以便将其绑定到其父布局大小?

qt button qml
1个回答
9
投票

我猜这与问题这里类似。 在该示例中,布局内的元素不响应

width
height
参数。 设置
Layout.preferredWidth
Layout.preferredHeight
似乎可以解决问题。请参阅该答案中提供的文档。

例如,您仍然可以绑定到父级的属性

Layout.preferredWidth: parent.width * 0.4
© www.soinside.com 2019 - 2024. All rights reserved.