我已经使用成功添加元素
list.push(element)
Run Code Online (Sandbox Code Playgroud)
但我该如何删除它们呢?我尝试过以下方法,但似乎都不起作用。
list.pop()
list.pop_front()
list.remove()
list.remove(int)
list.remove(element)
Run Code Online (Sandbox Code Playgroud)
小智 9
对于像我一样总是停留在这个页面上的人:我找到了一个非常hacky的解决方案来从list<QtObject>.
myList = Array.from(myList).filter(r => r !== elementIWant2Remove)
Run Code Online (Sandbox Code Playgroud)
这不是很优雅,但如果您需要删除一个元素,它就可以解决问题。
您无法删除单个项目。根据文档:
请注意,对象一旦创建就不能单独添加到列表中或从列表中删除;要修改列表的内容,必须将其重新分配给新列表。
这意味着该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]
}
Run Code Online (Sandbox Code Playgroud)
我在这里使用了ints,但您也可以存储 QML 对象和其他类型。使用 JavaScript 数组会将变量暴露给大多数(如果不是全部)JavaScript 的数组函数。
| 归档时间: |
|
| 查看次数: |
8359 次 |
| 最近记录: |