QML:如何获得中继器的总高度?



我有一个复读器,但复读生的孩子身高不同,我自己无法确定。但是,我需要找到所有中继器子级的总身高。我知道我可以遍历所有的孩子,把他们所有的身高加起来,但我觉得效率低得令人难以置信,希望有更好的方法。以下是我用来测试的一些示例代码:

import QtQuick 2.10
import QtQuick.Window 2.10
Window {
id: root
width: 320
height: 580
Component.onCompleted: loadData()
function loadData() {
var len, i, repeater_data
len = 3
repeater_data = new Array(len)
for (i = 0; i < len; i++) {
repeater_data[i] = { "name": i, "height": (Math.random() * 100 + 50) }
}
repeater.model = repeater_data
}
Flickable {
id: mainFlick
anchors.fill: parent
contentHeight: mainColumn.height
Column {
id: mainColumn
width: parent.width
Repeater {
id: repeater
width: parent.width
model: []
delegate: Column {
id: repeaterItem
width: parent.width
Text {
text: modelData["name"] + " - Height: " + modelData["height"]
height: modelData["height"]
}
} // repeaterItem
} // repeater
} // mainColumn
} // mainFlick
} // root

我已经尝试了"childrenRect"属性的各种应用程序,但无济于事。

我正在寻找这个问题的答案,发现你可以使用这个

mainColumn.childrenRect.height

在我的情况下,这将提供列子项的总高度或 totatl 行子项的宽度。

如果len = 3,我有例如:

  • 0 - 高度:86.47358953069201
  • 1 - 高度:147.20601108198989
  • 2 - 高度:100.03074850782205

如果我将以下代码添加到根项:

focus: true
Keys.onPressed: {
console.log(mainFlick.contentHeight)
console.log(mainColumn.height)
}

我获得:

qml: 333.71034912050396
qml: 333.71034912050396

这不是要找的吗?

相关内容

  • 没有找到相关文章

最新更新