我一直在使用 QtQuick,遇到了一个我无法完全理解的问题。
在下面的示例中,我直接设置了 Rectangle 的宽度和高度,期望它填充父级高度的 10% 和整个宽度。但是,矩形的大小为零
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
ApplicationWindow {
width: 640
height: 480
visible: true
title: qsTr("Window")
ColumnLayout {
anchors.fill: parent
Rectangle {
width: parent.width
height: parent.height * 0.1
color: "blue"
}
}
}
但是当我修改代码以改为使用 Layout.preferredWidth 和 Layout.preferredHeight 时,矩形大小符合预期:
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
ApplicationWindow {
width: 640
height: 480
visible: true
title: qsTr("Window")
ColumnLayout {
anchors.fill: parent
Rectangle {
Layout.preferredWidth: parent.width
Layout.preferredHeight: parent.height * 0.1
color: "blue"
}
}
}
有人可以解释这种行为吗?
提前感谢您的帮助!