Collection 个 QML 中的 ListModel
Collection of ListModel in QML
如何创建 Collection 的 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 创建一个 qml ListModel
collection
如何创建 collection.
编辑:
我想动态创建模型的 Collection。
每个列表模型最多包含 5 个元素。一旦达到计数 5,我就需要创建另一个包含元素的 ListModel。等等。
您的集合将由 属性 表示,它本质上是一个 JS 数组。在插入元素时,您检查集合是否不包含模型,或者如果包含,则该模型是否已经有 5 个元素,如果是,您向其中添加另一个模型,然后将该项目附加到集合中的最后一个模型:
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})
}
一种选择是在 C++ 中正确执行此操作,一个对象提供模型列表或以模型作为其内容的模型。
这避免了 scripting/data 在 QML 端处理,允许显式控制状态,甚至重新加载 QML 等。
也没有 ListModel
的任何限制,例如允许翻译文本。
如何创建 Collection 的 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 创建一个 qml ListModel
collection
如何创建 collection.
编辑: 我想动态创建模型的 Collection。 每个列表模型最多包含 5 个元素。一旦达到计数 5,我就需要创建另一个包含元素的 ListModel。等等。
您的集合将由 属性 表示,它本质上是一个 JS 数组。在插入元素时,您检查集合是否不包含模型,或者如果包含,则该模型是否已经有 5 个元素,如果是,您向其中添加另一个模型,然后将该项目附加到集合中的最后一个模型:
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})
}
一种选择是在 C++ 中正确执行此操作,一个对象提供模型列表或以模型作为其内容的模型。
这避免了 scripting/data 在 QML 端处理,允许显式控制状态,甚至重新加载 QML 等。
也没有 ListModel
的任何限制,例如允许翻译文本。