如何从QML基本类型列表中动态删除元素?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从QML基本类型列表中动态删除元素?相关的知识,希望对你有一定的参考价值。

我已成功添加元素

list.push(element)

但是我该如何删除它们?我尝试了以下内容,但它们似乎都没有效果。

list.pop()
list.pop_front()
list.remove()
list.remove(int)
list.remove(element)
答案

您无法删除单个项目。根据docs

请注意,创建后无法将对象单独添加到列表中或从列表中删除;要修改列表的内容,必须将其重新分配给新列表。

这意味着pop方法很可能不会与基本列表类型一起存在。 (但是,有一种push方法。)

使用javascript数组会好得多。

property var myArray: [1, 2, 3]

Component.onCompleted: {
    myArray.push(4);
    myArray.push(5);
    myArray.splice(1, 1)    // simulates a remove
    myArray.pop();          // pop last item

    console.debug(myArray)  // [1, 3, 4]
}

我在这里使用过ints,但你也可以存储QML对象和其他类型。使用JavaScript数组会将您的变量暴露给大多数(如果不是全部)JavaScript的Array functions

以上是关于如何从QML基本类型列表中动态删除元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QML 中动画添加和删除元素到布局?

结束一个片段

基本数据类型

使用 Python 从 QML 中动态创建的列表中访问数据

在 qml 如何保存作为列表视图元素的标签文本

使用 QAbstractListModel 从 python 访问 QML 中的列表元素