gpt4 book ai didi

qt - 如何设置 QML MapPolyline 路径属性

转载 作者:行者123 更新时间:2023-12-04 12:52:51 25 4
gpt4 key购买 nike

我有一个 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 }
]}
}

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

谢谢您的帮助!

最佳答案

Qt Location 从 C++ 运行正常。你不需要弄乱任何 QJSValue 的东西。在 QObject 中创建一个属性并返回一个 QVariantList。用 QGeoCoordinate(线中的点)填充 QVariantList。在 QML 中,将 MapPolyline 的路径设置为 QObject QVariantList 属性。 QML 会自动将 QVariantList 转换为 Javascript 数组。 QGeoCoordinates 是 qml 坐标类型,所以转换是透明的。每当您在 qml 中看到“列表”类型时,如果您想填充 Javascript 对象(或创建 Q_GADGET),您始终可以从 c++ 或 QVariantMap 返回 QVariantList。

让我知道的一件事是我从 C++ 返回的 QGeoCoordinates 无效。如果 QGeoCoordinates 无效,则 MapPolyLine 无法填充并会创建一条消息:“不支持的路径类型”。在将其添加到 QVariantList 之前,请确保 QGeoCoordinate isValid()。

关于qt - 如何设置 QML MapPolyline 路径属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32585037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com