QML - 如何正确地将 implicitWith 设置为 GridLayout
QML - How to correctly set an implicitWith to a GridLayout
我使用的是 Qml 5.12,主要是尝试将 implicitWidth 设置为 GridLayout。
为此,我有一个紫色矩形并将矩形的宽度设置为 GridLayout。
红色矩形适合 GridLayout,因此我可以看到 GridLayout 的宽度。
这是我的代码:
Rectangle { anchors.fill: gl; color: "red"; opacity: 0.22 }
Rectangle { id: rect; width: 350; height: 30; color: "purple"; }
GridLayout
{
id: gl
y: 35
implicitWidth: rect.width
columns: 2
Label { text: "This is a test" }
SpinBox { Layout.alignment: Qt.AlignRight }
}
如果我 运行 代码,我希望我的两个矩形具有相同的宽度。
但实际结果是红色矩形变小了。所以implicitWidth考虑不周
谁能告诉我为什么?
谢谢!
GridLayout
根据其 children 的 implicitWidth
计算其自己的 implicitWidth
。因此,您设置的值会被计算值覆盖。
implicitWidth
是一个 Item 想要的宽度(如果没有明确设置 width
它应该有的宽度)。根据其 children 或某些内部值以外的其他内容设置它毫无意义。
此处您希望 GridLayout 与 Rectangle
的大小完全相同,因此只需设置其 width
属性.
我使用的是 Qml 5.12,主要是尝试将 implicitWidth 设置为 GridLayout。
为此,我有一个紫色矩形并将矩形的宽度设置为 GridLayout。
红色矩形适合 GridLayout,因此我可以看到 GridLayout 的宽度。
这是我的代码:
Rectangle { anchors.fill: gl; color: "red"; opacity: 0.22 }
Rectangle { id: rect; width: 350; height: 30; color: "purple"; }
GridLayout
{
id: gl
y: 35
implicitWidth: rect.width
columns: 2
Label { text: "This is a test" }
SpinBox { Layout.alignment: Qt.AlignRight }
}
如果我 运行 代码,我希望我的两个矩形具有相同的宽度。 但实际结果是红色矩形变小了。所以implicitWidth考虑不周
谁能告诉我为什么?
谢谢!
GridLayout
根据其 children 的 implicitWidth
计算其自己的 implicitWidth
。因此,您设置的值会被计算值覆盖。
implicitWidth
是一个 Item 想要的宽度(如果没有明确设置 width
它应该有的宽度)。根据其 children 或某些内部值以外的其他内容设置它毫无意义。
此处您希望 GridLayout 与 Rectangle
的大小完全相同,因此只需设置其 width
属性.