我已经成功使用添加了元素
list.push(element)
但是如何删除它们?我已经尝试了以下方法,但是似乎都不起作用。
list.pop()
list.pop_front()
list.remove()
list.remove(int)
list.remove(element)
答案 0 :(得分:3)
对于像我一样总是停留在此页面上的人:我发现了一种非常骇人听闻的解决方案,可以从list<QtObject>
中删除元素。
myList = Array.from(myList).filter(r => r !== elementIWant2Remove)
这不是很优雅,但是如果您需要删除一个元素,它就可以解决问题。
答案 1 :(得分:2)
您无法删除单个项目。根据{{3}}:
请注意,对象一旦创建就无法单独添加到列表或从列表中删除;要修改列表的内容,必须将其重新分配给新列表。
这意味着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]
}
我在这里使用了int
,但是您也可以存储QML对象和其他类型。使用JavaScript数组会将您的变量暴露给JavaScript的docs的大多数(如果不是全部)。