Qt调用百度地图API通过QWebEngineView显示,报错Check failed: !result.opaque(). 问题

文章讲述了作者在使用Qt开发无人船循迹导航应用时遇到的问题,即加载百度地图API时,使用自己注册的AK值时地图会闪现消失并报错。经过尝试不同加载方式和配置,最终发现使用绝对路径加载地图并正确配置编译器解决了问题。
摘要由CSDN通过智能技术生成

最近在无人船循迹导航问题,看到网上好多加载百度地图API的,按照相关博客进行了加载应用,发现应用别人注册完成的AK值可以正常读取到百度地图,而自己注册AK后经常出现地图闪现后消失,而且报错如下:

Check failed: !result.opaque().

Backtrace:

QWebEngineUrlSchemeHandler::qt_static_metacall [0x00007FFDEAA42282+1143858]

QWebEngineUrlSchemeHandler::qt_static_metacall [0x00007FFDEAA5C04C+1249788]

QWebEngineUrlSchemeHandler::qt_static_metacall [0x00007FFDEAA5C003+1249715]

QWebEngineUrlSchemeHandler::qt_static_metacall [0x00007FFDEA93C1EE+70558]

一开始怀疑是QWebEngineView设置问题,或是自己注册AK值有问题包括询问百度地图客服,都没得到解决。之后利用别人程序验证AK值是没问题的可以用。

通常我们在Qt加载百度地图JS文件格式是:

ui->webView->page()->load(QUrl("qrc:/MAP/MapShow/onlineMap.html"));

onlineMap.html内定义了相关地图界面要求,可参考地图JS API示例 | 百度地图开放平台

但是编译时地图闪现后消失,报错如上。

后经参考研究博客:关于QT使用qwebengineview调用百度地图api

其内采用绝对路径的方式加载地图:map->load(QUrl("file:///D:/QTcode/transfer/mysite.html"));

后经修改自己加载HTML文件的格式:ui->webView->page()->load(QUrl("file:///E:/***/MAP/MapShow/onlineMap.html"));

地图得以正常加载显示。

期间参考博客,添加了:关于QT使用qwebengineview调用百度地图api_load(qurl("file:///.map.html"))-CSDN博客

针对编译器也进行配置,在debugger里改为了auto-detected cbd:

如果没有,打开控制面板->程序->程序和功能->选择windows software development Kit进行更改

最终问题得以解决,可以自己申请AK值利用最新版本加载百度地图API了,该问题折磨了一周时间。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值