我正在尝试在我的 QML 应用程序中动态构建相同类型项目的矩阵并保持动态,以便您可以随时更改 C++ 文件中的行数和列数。这一直运作良好,但现在,为了单独访问它们,我想给它们动态名称。因此,我嵌套了两个中继器并尝试如下设置 objectName:
Repeater{
id: rows
model: Matrix1.row //number of rows in Matrix1-Object
Repeater{
id: columns
model: Matrix1.column //number of columns in Matrix1-Object
RepeatedItem{
objectName: (index) +"."+ (rows.index) //matrix elements are
supposed to be numbered x.y because of the nested repeaters, e.g.
0.0 for the first element
}
}
}
不幸的是,我似乎无法访问外部索引。 显示第一个值,第二个值由我的 GUI 的 TextArea 中的字符串 undefined 表示。 如果我向外部 Repeater 添加一个新属性并将其设置为与索引相同的值,它将被设置一次并为每个重复行保留第一个值 (0)。
是否不可能以某种方式动态地达到这个外部索引值? 或者有人知道在 QML 中动态创建可单独访问的二维项目数组的更好方法吗?
最佳答案
index
属性是上下文属性。您可以将它存储到一个普通属性中,这样您就可以从另一个上下文访问它:
Repeater {
id: rows
// ...
Repeater {
id: columns
property int outerIndex: index
// ...
Text {
text: index + "." + columns.outerIndex
}
}
}
关于c++ - 是否有可能从内部(它们是嵌套的)到达外部 QML Repeater 的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38828379/