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 的任何限制,例如允许翻译文本。