在 QML 中动态创建组件(ListModel 中的 ListElement)

Create component dynmically in QML (ListElement in ListModel)

我想动态创建 QML-ListModel 的成员。静态创建没有问题并且工作正常:

 ListModel{
            id: sList 

            ListElement{
                url: "Res/ex1.jpg"
                time: 10
            }

            ListElement{
                url: "Res/ex2.jpg"
                time: 10
            }
        }

我选择了 QML 函数 Qt.createQmlObject,sList 已经在启动时创建:

Qt.createQmlObject("import QtQuick 2.5; ListElement{url: \"Res/ex1.jpg\"; time: 10; }", sList, "dynamicItem");

终于报错了:

file:///C:[...]TEP46Py6_2/main.qml:156: Error: Qt.createQmlObject(): failed to create object: 
file:///C:[...]TEP46Py6_2/dynamicItem:1:53: Cannot assign to non-existent property "time"

是的,ListElement 没有原生 属性 时间(还有 url),但 ListElement 通常没有原生属性。有人可以给我一个建议吗?谢谢。

你只需要使用append函数:

sList.append({"url": "Res/ex1.jpg", "time": 10})