Qt QML堆栈列布局子项彼此重叠?
我是QML的新手,所以我可能会问一些显而易见的问题。我正在努力将ColumnLayout中的元素堆叠在彼此之上。他们之间的距离太大了,我无能为力。有关更多详细信息,请参见屏幕截图: 以下是实际的QML:Qt QML堆栈列布局子项彼此重叠?,qt,qml,qtquick2,Qt,Qml,Qtquick2,我是QML的新手,所以我可能会问一些显而易见的问题。我正在努力将ColumnLayout中的元素堆叠在彼此之上。他们之间的距离太大了,我无能为力。有关更多详细信息,请参见屏幕截图: 以下是实际的QML: ColumnLayout { anchors.fill: parent spacing: 0 Rectangle { color: "blue" Layout.fillWidth: true height: 50
ColumnLayout {
anchors.fill: parent
spacing: 0
Rectangle {
color: "blue"
Layout.fillWidth: true
height: 50
}
Rectangle {
color: "red"
Layout.fillWidth: true
height: 50
}
Rectangle {
color: "yellow"
Layout.fillWidth: true
height: 50
}
}
我想做的是让矩形从上到下对齐,它们之间的间距可能是2-3像素
谢谢如果您将填充物移到父级,并将填充物放置在那里,使填充物刚好达到宽度,则代码将运行良好
anchors.left: parent.left
anchors.right: parent.right
之后,代码将如下所示
ColumnLayout {
anchors.left: parent.left
anchors.right: parent.right
spacing: 2 //spacing between items in layout
Rectangle {
color: "blue"
Layout.fillWidth: true
height: 50
}
Rectangle {
...
}
Rectangle {
...
}
}
通过这样做,您将授予ColumnLayout
管理自己高度的权限。它的高度将与其子对象的高度相关,并且不会拉伸到父对象
另一种方法是通过anchor
Item {
id: item1
}
Item {
id: item2
anchor.top: item1.bottom
anchor.topMargin: 2
}
Item {
id: item3
anchor.top: item2.bottom
anchor.topMargin: 3
}
如果您不需要在布局内部以特定方式管理项目的位置,则布局是一件好事
也有助于你检查这个问题,这不是问题的一个重复吗?“巴卡洛佐,我肯定会认为这是一个比公认的答案更好的解决办法。”米奇:嗯,还有一个重复的问题/答案和Grecko的完全相同的话(找不到)。所以,是的,这是“被接受的方式”。此外,在任何版面
中都有边距
和对齐
属性,这似乎与回答“如果你不需要管理职位,版面是件好事”的说法相冲突。我认为你是对的,这是一个骗局,但另一个答案需要整理,我会在那里发表评论。这本书可能会重复用于提问者指定的用途,但仍然没有教他们正确使用专栏布局的方法。一旦掌握了QML中的布局,它将是一件方便且功能强大的事情。也许您还可以通过使用专栏布局来提供实现提问者目标的正确方法,以便对这两个选项进行比较。简单地说一种方法比另一种好是不对的