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

时间:2013-02-02 11:25:59

标签: qt qml

我有一个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*

1 个答案:

答案 0 :(得分:4)

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

更简单一点,ListModel不是Project对象的容器。它只存储Project对象的属性。