QML ShapePath 清除路径元素

QML ShapePath clear path elements

我想从 ShapePath 中删除所有路径元素。由于 pathElements 是一个 Qml 列表,修改它的唯一方法是将它设置为一个新的 Javascript 数组。因此,我希望能够通过为其分配一个空数组来清除它。

我试过 path.pathElements = [],但对我不起作用。

然后我尝试了 path.pathElements = null,它确实有效(PathLine 不再绘制),但它打印出这个丑陋的错误消息:QObject::connect: Cannot connect (nullptr)::changed() to QQuickShapePath::processPath()

还有其他想法吗?

重现代码:

Shape {
    anchors.fill: parent

    ShapePath {
        id: path

        strokeWidth: 2
        strokeColor: "green"
        fillColor: "green"

        Component.onCompleted: path.pathElements = []

        PathLine { x: 50; y: 50 }
    }
}

我在 Qt 提交了 bug report,他们确认了我的错误。

解决此问题之前的解决方法是先分配 null,然后分配 []

Shape {
    anchors.fill: parent

    ShapePath {
        id: path

        strokeWidth: 2
        strokeColor: "green"
        fillColor: "green"

        Component.onCompleted: {
            path.pathElements = null
            path.pathElements = []
        }

        PathLine { x: 50; y: 50 }
    }
}