-1

如何创建包含5个列表的ListModel 每个列表的集合ListModelListElement

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集合创建一个 qml

如何创建集合。

编辑: 我想动态创建模型集合。每个列表模型最多包含 5 个元素。一旦它达到计数 5,那么我需要创建另一个带有元素的 ListModel。等等。

4

2 回答 2

1

您的集合将由本质上是 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})
  }
于 2016-11-08T16:19:30.887 回答
0

一种选择是在 C++ 中正确执行此操作,其中一个对象提供模型列表或将模型作为其内容的模型。

这避免了 QML 端的脚本/数据处理,允许显式控制状态,甚至重新加载 QML 等。也没有任何限制ListModel,例如允许翻译文本。

于 2016-11-09T18:20:00.867 回答