例如,这有效:
import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Layouts 1.2
ApplicationWindow
{
visible: true
width: 640
height: 480
title: qsTr("Hello World")
function thingWidth()
{
return width*80/100
}
Column
{
spacing: 10;
anchors.horizontalCenter: parent.horizontalCenter
Thing { color: "red"; width: thingWidth(); }
Thing { color: "yellow"; width: thingWidth(); }
Thing { color: "green"; width: thingWidth(); }
}
}
但是将Column
更改为ColumnLayout
却没有(调整窗口大小会导致布局出错)。
任何帮助,谢谢。
编辑1:
根据要求,这里也是Thing.qml
,
import QtQuick 2.0
Item {
property alias color: rectangle.color
width: 50; height: 50
Rectangle
{
id: rectangle
border.color: "white"
anchors.fill: parent
}
}
看起来我的帖子主要是代码。是的,保姆呢!那是因为人们在这里发布代码。
答案 0 :(得分:8)
来自Column
的{{3}}:
列是一种将子项目沿一列定位的类型。它可以用作垂直定位一系列项目而不使用锚点的便捷方式。
此外,它可以简化插入,删除等过程中的转换。它还将documentation附加到项目上,以便为他们提供有关其职位的概念。
另一方面,properties是GridLayout
的文档(请注意,ColumnLayout
是一个便利工具,但它只不过是一个包含一列的网格,来自this)
它具有完全不同的属性集以及附加属性,完全取决于项目的排列。
我想无论如何,文档中最有趣的页面是documentation一页 我只想引用它:
定位器项是管理声明性用户界面中项目位置的容器项。定位器的行为方式与标准Qt小部件使用的布局管理器类似,只是它们本身也是容器。
当需要以常规布局排列时,定位器可以更轻松地处理许多项目。
Qt Quick Layouts也可用于在用户界面中排列Qt Quick项目。它们在声明性用户界面上管理项目的位置和大小,非常适合可调整大小的用户界面。
请注意,Column
是Positioner
,而ColumnLayout
是Layout
。什么时候使用它们主要取决于你的目标,像往常一样。