我在 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
。我可能尝试了代码中宽度语句的所有可能位置,但是当我运行应用程序时,按钮的大小永远不会改变。我还尝试将大小设置为特定数字,而不是将其绑定到父级,仍然没有任何结果。
那么这里可能存在什么问题呢?应该在哪里以及如何定义按钮大小,以便将其绑定到其父布局大小?
我猜这与问题这里类似。 在该示例中,布局内的元素不响应
width
和 height
参数。 设置 Layout.preferredWidth
和 Layout.preferredHeight
似乎可以解决问题。请参阅该答案中提供的文档。
例如,您仍然可以绑定到父级的属性
Layout.preferredWidth: parent.width * 0.4