我有一个ListModel,我按以下方式填写:
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*
答案 0 :(得分:4)
当您将Project
对象附加到ListModel时,它是添加到ListModel(作为ListModel角色)的Project
对象的属性,而不是Project
对象本身。因此,当您使用ListModel.get()
时,返回对象只是一个对象(确切地说是QObject *),其中ListModel角色作为属性,而不是Project
对象。
更简单一点,ListModel不是Project
对象的容器。它只存储Project
对象的属性。