嵌套Repeater中如何获取父Repeater的索引?
解决嵌套Repeater获取父索引的问题
有几种可靠的方法可以让子Repeater内的控件获取父Repeater的索引:
方法1:通过父Repeater的ID直接引用
父Repeater的index属性在它的delegate作用域内代表当前项的索引,你可以直接通过父Repeater的ID访问这个值:
Repeater { id: parentRepeater model: Array(10).fill([""]) Repeater { model: modelData Label { text: parentRepeater.index // 直接获取父Repeater的当前索引 } } }
方法2:在父delegate中定义属性传递索引
如果结构复杂、担心作用域冲突,可以在父Repeater的delegate里显式定义属性存储父索引,再让子控件访问:
Repeater { id: parentRepeater model: Array(10).fill([""]) delegate: Repeater { property int parentIdx: parentRepeater.index model: modelData Label { text: parentIdx } } }
方法3:借助模型上下文属性(适用于复杂模型场景)
如果父模型是自定义结构,也可以将父索引作为模型数据的一部分传递,但对你当前用Array.fill的简单场景,前两种方法更高效直接。
内容的提问来源于stack exchange,提问作者satk0
相关产品推荐
相关产品推荐

