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数组并存储在中。你也可能对