QML 映射 - TLS 初始化失败错误

问题描述

我目前正在创建一个能够显示地图的应用程序。在添加更多高级功能之前,我想简单地显示应用程序中某个区域的地图。为此,我使用了 Qt 示例“最小地图”中的一些修改代码。 map.qml 文件中的代码

import QtQuick 2.0
import QtLocation 5.6
import QtPositioning 5.6

Rectangle {
    Plugin {
        id: mapPlugin
        name: "osm" // "mapBoxgl","esri",...
        // specify plugin parameters if necessary
        // PluginParameter {
        //     name:
        //     value:
        // }
    }

    Map {
        anchors.fill: parent
        plugin: mapPlugin
        center: QtPositioning.coordinate(59.91,10.75) // oslo
        zoomLevel: 14
    }
}

我使用 QQuickWidget 显示地图,源设置为我的 QML 文件。不幸的是,地图未显示。 QuickWidget 中仅显示灰色背景和铭文(我在帖子中附上了图片)。在 QML 调试器控制台中,我收到了消息:

"QObject: : connect( QQuickWindow,QDeclarativeGeoMap) : 无效的 nullptr 参数"

"QGeoTileProviderOsm: Tileserver 在 QUrl 被禁用( " http: / / maps- redirect. qt. io/ osm/ 5. 8/ satellite" ) "

“QGeoTileFetcherOsm: 所有提供者都已解决

“QSslSocket: : connectToHostEncrypted: TLS 初始化失败”

"QGeoTileRequestManager: 5 次无法获取磁贴 ( 8682,4766,14) 5 次, 放弃。 最后一条错误消息是: ' TLS 初始化失败' "

Link to screenshot showing the problem

解决方法

如果您的操作系统是 Windows,您应该安装 OpenSSL。 并且您正在使用 osm 插件,因此您应该在运行应用程序时连接到互联网。

你在我系统中的代码运行如下:

your code in my system Runs like this :