QML-形状类型,属性数据没有删除条目的方法?

时间:2019-03-30 19:43:17

标签: qt qml

对于我的应用程序,我正在创建一些动态行以在屏幕上显示它们。 我尝试从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方法。

1 个答案:

答案 0 :(得分:1)

data中的Shape属性不是JS数组,并且非常有限。

根据documentation

  

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

因此,您必须创建一个没有要删除的项目的新列表:

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
        }