【发布时间】:2020-01-02 23:08:37
【问题描述】:
我在 ListView 周围有一个 ScrollView。但是当我把它放在一个 ColumnLayout 中时,ListView 就消失了。
我的实际代码更大更复杂,但我已将问题简化为这个小例子。
import QtQuick 2.11
import QtQuick.Window 2.11
import QtQuick.Layouts 1.11
import QtQuick.Controls 2.4
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
ListModel {
id: theModel
ListElement { display: "one" }
ListElement { display: "two" }
ListElement { display: "three" }
ListElement { display: "four" }
ListElement { display: "five" }
}
ColumnLayout {
ScrollView
{
width: 150
height: 150
clip: true
ListView {
model: theModel
anchors.fill: parent
delegate: Column {
TextField {
text: display
}
}
}
}
Rectangle {
color: "black"
width: 100
height: 30
}
}
}
如果没有 ColumnLayout 和 Rectangle,我会得到一个可滚动的窗口,按预期显示 ListView 的一部分。但是在包含它们的情况下,除了矩形上方的一些空白区域之外,没有任何 ListView 的迹象。
【问题讨论】:
-
我宁愿为 ColumnLayout 定义大小(宽度/高度或其他方式),然后使嵌套项适合。现在我们的 ColumnLayout 没有大小,也没有定位在那个窗口中。
-
好点@alexander-v。我逐渐掌握了这个窍门!我在下面的答案中使用了 anchors.fill: parent。