正如官方文档所说,从Qt 6.5开始,有两个附加属性,Layout.verticalStretchFactor和Layout.horizontalStretchFactor,它们允许您指定垂直和水平拉伸因子。例如,如果第一个项目的拉伸因子为 1,第二个项目的拉伸因子为 2,则第一个项目的目标是获得可用空间的 1/3,第二个项目的目标是获得可用空间的 2/3。可用空间。
但是,我尝试了一下,并没有得到预期的结果。这两件物品的尺寸相同。这是代码:
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
ColumnLayout {
anchors.fill: parent
Rectangle {
Layout.fillHeight: true
Layout.fillWidth: true
Layout.verticalStretchFactor: 1
border.color: "red"
}
Rectangle {
Layout.fillHeight: true
Layout.fillWidth: true
Layout.verticalStretchFactor: 2
border.color: "blue"
}
}
}
Layout.horizontalStretchFactor 也有同样的问题。我正在使用 Qt 6.7.2。有什么问题吗
听起来像一个错误。这有效,但前提是您将
Layout.preferredHeight
和 Layout.maximumHeight
设置为某些值。
作为解决方法,您可以将其设置为:
ColumnLayout {
anchors.fill: parent
spacing: 0
Rectangle {
Layout.fillHeight: true
Layout.fillWidth: true
Layout.preferredHeight: 1
Layout.maximumHeight: 1000
Layout.verticalStretchFactor: 1
color: "red"
}
Rectangle {
Layout.fillHeight: true
Layout.fillWidth: true
Layout.preferredHeight: 1
Layout.maximumHeight: 1000
Layout.verticalStretchFactor:2
color: "blue"
}
}