如何创建ListModel
的集合
每个列表ListModel
包含5 ListElement
ListModel{
ListElement {
type:"1"
title:"5:03pm"
description:"text-1"
isLoaded: false
}
ListElement {
type:"1"
title:"5:03pm"
description:"text-1"
isLoaded: false
}
ListElement {
type:"1"
title:"5:03pm"
description:"text-1"
isLoaded: false
}
ListElement {
type:"1"
title:"5:03pm"
description:"text-1"
isLoaded: false
}
ListElement {
type:"1"
title:"5:03pm"
description:"text-1"
isLoaded: false
}
}
一个型号是这样的。我想用2或3 ListModel
集合
如何创建集合。
修改 我想动态创建模型集合。 每个列表模型包含最多5个元素。一旦它达到计数5,那么我需要创建另一个包含元素的ListModel。等等。
答案 0 :(得分:1)
您的集合将由一个本质上是JS数组的属性表示。在插入元素时,检查集合是否包含模型,或者是否包含模型,模型是否已包含5个元素,如果是,则向其添加另一个模型,然后将该项追加到集合中的最后一个模型: / p>
id: main
property var models: []
Component {
id: mod
ListModel {}
}
function addItem(type, title, desc) {
if (!models.length || models[models.length - 1].count > 4) models.push(mod.createObject(main))
models[models.length - 1].append({"type": type, "title": title, "description": desc})
}
答案 1 :(得分:0)
一种选择是在C ++中正确地执行此操作,其中一个对象提供模型列表或模型作为其内容。
这避免了QML端的脚本/数据处理,允许显式控制状态,甚至重新加载QML等。
也没有(define (rolling-window l size)
(if (< (length l) size) l
((take l size) (rolling-window (cdr l) size))))
的任何限制,例如允许翻译文本。