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

问题描述 投票:1回答:1

我已成功添加元素

list.push(element)

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

list.pop()
list.pop_front()
list.remove()
list.remove(int)
list.remove(element)
qt qml
1个回答
2
投票

您无法删除单个项目。根据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

© www.soinside.com 2019 - 2024. All rights reserved.