Qt qml中的ListModel,从模型中获取对象

Qt qml中的ListModel,从模型中获取对象,qt,qml,Qt,Qml,我有一个列表模型,我用以下方式填写: property ListModel projects: ListModel {} property Project currentProject : null function initialization(){ var comp = Qt.createComponent("Project.qml"); var object = comp.createObject(parent,{}); projects.append(objec

我有一个列表模型,我用以下方式填写:

property ListModel projects: ListModel {}
property Project currentProject : null

function initialization(){
    var comp = Qt.createComponent("Project.qml");
    var object = comp.createObject(parent,{});
    projects.append(object);
    currentProject = projects.get(0)

}
Component.onCompleted: root.initialization();
我在
currentProject=projects.get(0)
行中有一个错误。 错误文本:

main.qml:14: Error: Cannot assign QObject* to Project_QMLTYPE_0*

项目
对象附加到ListModel时,添加到ListModel的是
项目
对象的属性(作为ListModel角色),而不是
项目
对象本身。因此,当您使用
ListModel.get()
时,返回对象只是一个对象(确切地说是QObject*),其属性是ListModel角色,而不是
项目
对象


更简单地说,ListModel不是
项目
对象的容器。它只存储您的
项目
对象的属性。

作为解决方法,我建议将
属性
更改为
属性QtObject currentProject:null
谢谢,它是可用的,但这看起来非常有趣!谢谢顺便说一句,你能帮助选择容器吗?你最好使用设计来保存数据和显示你的UI。如果您的
项目
是一个UI,请使其成为视图(ListView、Repeater等)的委托,然后将数据插入ListModel。如果您只想保留数据,请将其放入JavaScript数组并存储在中。你也可能对