【发布时间】:2019-04-16 22:05:48
【问题描述】:
我想动态地填充通过Repeaters创建的以下矩形中的颜色。
我根本无法访问底部的中继器。
我应该如何访问这里的“所有”矩形?
Row
{
spacing: 20
Repeater
{
id: repeater3
property Repeater repeater2: repeater2
model: head.rows
Column
{
id: columnInBetween
spacing: 20
Repeater
{
id: repeater2
model: head.columns
property Row row1: row1
Row
{
id: row1
property Repeater repeater1: repeater1
Repeater
{
id: repeater1
model: 2
Rectangle
{
width: 20; height: 20
color: "red"
}
}
}
}
}
}
}
【问题讨论】:
-
I am not able to access the bottom Repeater at all- 为什么不呢?你尝试了什么? -
如果您需要访问由中继器创建的项目,您可以遍历其父级的
children属性(记住,中继器的父级将其创建给它自己的父级——在它自己之后!)或“注册”在文件范围内具有可见 id 的项目的属性中感兴趣的项目; -
...如果您正在寻找访问外部中继器的每个项目模型数据的方法,也有一些方法(即“别名”它像
property var modelData2: modelData一样 - 提供名称Repeater 附加的属性是modelData-- 现在不记得了,可以是普通的model,这些东西在Repeater 和ListView 之间有点不一致,iirc)。