Qt 向模型动态添加组件

Qt 向模型动态添加组件,qt,qml,Qt,Qml,如何将动态创建的Qml对象附加到ListModel 我试过了,但没用 property ListModel projects Component.onCompleted: { var comp= Qt.createComponent("Project.qml"); var object = comp.createObject(parent,{}); projects.append(object); } 谢谢。ListModel append()、insert()和set

如何将动态创建的Qml对象附加到ListModel

我试过了,但没用

property ListModel projects
Component.onCompleted: {
    var comp= Qt.createComponent("Project.qml");
    var object = comp.createObject(parent,{});
    projects.append(object);
}
谢谢。

ListModel append()、insert()和set()以字典作为参数。因此,您需要将createObject()返回的对象包装到字典中

还要创建ListModel的实例以分配给项目属性,以便可以附加到它

property ListModel projects: ListModel {}
Component.onCompleted: {
    var comp= Qt.createComponent("Project.qml");
    var object = comp.createObject(parent, {});
    projects.append({"name": object});
}

“name”属性应该是唯一的?如何编写一个添加到模型中的函数?“name”在一个字典或ListElement中是唯一的,但您将附加多个这样的属性以唯一地标识它们,只需向字典添加另一个元素,如{“id”:“name”:object}。我尝试了在没有名称的情况下进行添加,效果很好。var comp=Qt.createComponent(“Project.qml”);var object=comp.createObject(父对象,{});项目。追加(对象);