3

次のように入力する 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*
4

1 に答える 1

5

オブジェクトを ListModel に追加すると、オブジェクト自体ではなく、ListModel に (ListModel ロールとして) 追加されるオブジェクトProjectのプロパティになります。そのため、 を使用すると、返されるオブジェクトは ListModel ロールをプロパティとして持つ単なるオブジェクト (正確には QObject*) であり、オブジェクトではありません。ProjectProjectListModel.get()Project

もっと簡単に言うと、ListModel はProjectオブジェクトのコンテナーではありません。Projectオブジェクトのプロパティを保存するだけです。

于 2013-02-04T07:41:17.487 に答える