我有一个 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();
Run Code Online (Sandbox Code Playgroud)
我有一个错误currentProject = projects.get(0)
。错误文本:
main.qml:14: Error: Cannot assign QObject* to Project_QMLTYPE_0*
Run Code Online (Sandbox Code Playgroud)
当您将Project
对象附加到 ListModel 时,是将Project
对象的属性添加到 ListModel(作为 ListModel 角色),而不是Project
对象本身。因此,当您使用 时ListModel.get()
,返回对象只是一个对象(准确地说是 QObject*),其中 ListModel 角色作为属性,而不是Project
对象。
更简单地说,ListModel 不是您的Project
对象的容器。它只是存储Project
对象的属性。