对于我的应用程序,我正在创建一些动态行以在屏幕上显示它们。 我尝试从qt文档中创建此示例中的行:
https://doc.qt.io/archives/qt-5.10/qtquick-shapes-content-interactive-qml.html
在此示例中,shapepath通过以下方式添加到shape的data属性中:
shape.data.push(p);
但是,我想从此列表中删除某些内容,但是pop()或拼接都无法工作。有没有一种方法可以从Shape的数据列表属性中删除项目?
在qt文档中,甚至没有提到push方法。
答案 0 :(得分:1)
data
中的Shape
属性不是JS数组,并且非常有限。
请注意,对象一旦创建就无法单独添加到列表或从列表中删除;要修改列表的内容,必须将其重新分配给新列表。
因此,您必须创建一个没有要删除的项目的新列表:
function removeFromShapeAt(index) {
var d = []
for (var i = 0; i !== shape.data.length; ++i) {
if (i !== index) {
d.push(shape.data[i])
}
}
shape.data = d
}