如何设置QML MapPolyline路径属性

Mar*_*hof 5 qt qml qtquick2

MapPolyline我的QtQuick项目中有一个对象.我需要从C++文件更改路径属性,但我不知道如何做到这一点.

我的qml - 文件:

MapPolyline {
    id: mapline
    objectName: "MapLine"
    line.width: 5
    line.color: "green"
    path:
    {[
        { latitude: 47.219791, longitude: 9.546032 },
        { latitude: 47.219657, longitude: 9.542508 },
        { latitude: 47.2194446, longitude: 9.5437876 }
    ]}
}
Run Code Online (Sandbox Code Playgroud)

现在我想从C++文件中更改path属性的内容.

谢谢您的帮助!

Mit*_*tch 0

我对 Qt Location 不太了解,但总的来说,我认为最好假设如果打算用 C++ 访问特定的 (QML) API,那么就会有一个 C++ API。我记得这个邮件列表线程提到有一个正在进行的更改添加了 C++ API。

话虽这么说,如果您很好奇并且认为尝试一下很有趣,那么您应该看一下该QDeclarativePolylineMapItem::setPath()函数,它调用parseCoordinate()对路径进行实际解析。它可能涉及使用QObject::findObject()(或属性系统)来获取MapPolylineC++ 中的对象,然后构造一个QJSValue(使用 中可用的函数QJSEngine)与 的预期格式相匹配setPath()