2013-02-01 104 views
0

如何將我的動態創建的Qml對象附加到ListModel?將組件動態添加到模型

我試過這個,但它不起作用。

property ListModel projects 
Component.onCompleted: { 
    var comp= Qt.createComponent("Project.qml"); 
    var object = comp.createObject(parent,{}); 
    projects.append(object); 
} 

謝謝。

回答

1

ListModel append(),insert()和set()以字典爲參數。所以你需要將createObject()返回的對象封裝到字典中。

還要創建ListModel的實例以分配給項目屬性,以便您可以附加到該項目。

property ListModel projects: ListModel {} 
Component.onCompleted: { 
    var comp= Qt.createComponent("Project.qml"); 
    var object = comp.createObject(parent, {}); 
    projects.append({"name": object}); 
} 
+0

「name」屬性應該是唯一的嗎?如何編寫一個函數,它會添加到模型中? – Dcow

+0

「name」在一個字典或ListElement中是唯一的,但是您將附加多個以便唯一標識它們,只需向字典中添加另一個元素,如{「id」:,「name」:object} 。 – Ajith

+0

我試圖添加沒有名稱,這工程。 var comp = Qt.createComponent(「Project.qml」); var object = comp.createObject(parent,{}); projects.append(object); – Dcow