c++ - 是否有可能从内部(它们是嵌套的)到达外部 QML Repeater 的索引?

标签 c++ nested qml repeater qtquick2

我正在尝试在我的 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/

相关文章:

c++ - 不同的传参,不同的输出

c++ - 如何判断 win32 c++ 应用程序在 CTRL-ALT-DEL 后是否失去焦点?

c++ - 如何将数据写入单独的行中的每个文件?

python - 我怎么可能在外层()函数中调用嵌套的 len() 函数

c++ - 如何始终编译文件?

javascript - Qt 5.4/QML : How do I correctly implement a custom C++ class as a global QML singleton instance and implement code for its signals (in QML)?

c++ - 检查 OpenCV 是否通过 C++ 代码编译为支持 GTK

javascript - 是否可以嵌套 JavaScript 对象?

list - 嵌套数据结构中的过滤/模式匹配

QT:未安装模块 "QtWebView"