Qt地图自适应拉伸的实现示例

 更新时间:2021年12月20日 11:07:50   作者:feiyangqingyun  
最近需要写一个程序,要是让qt到程序自适应,本文主要介绍了Qt地图自适应拉伸的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、前言

用过echart的人都会遇到一个问题,就算是代码中写了window.onresize = echart.resize,也只是横向自适应拉伸填充页面,垂直方向不会变化,除非指定高度才可以,这就比较郁闷了,为何echart本身不会自适应呢?按道理不应该啊,莫非实现起来很困难?好吧先不管这个了,这个问题搜索出来一大堆解决方案,在Qt的浏览器控件中也有这个问题,为了解决这个问题想了两个策略,一种是程序本身检测尺寸变化,然后重新设置高度并载入网页,一种是js函数设置对应的宽高,什么时候执行呢,就是在程序界面尺寸变化的时候,两种办法对比下来,最终选用的后者,因为效果比较好,还是异步执行的,无需重新加载网页,那个每次高度变化了就重新加载网页的办法在早期的作品中用过,看起来好傻逼比的。

二、功能特点

  • 同时支持闪烁点图、迁徙图、区域地图、仪表盘等。
  • 可以设置标题、提示信息、背景颜色、文字颜色、线条颜色、区域颜色等各种颜色。
  • 可设置城市的名称、值、经纬度 集合。
  • 可设置地图的放大倍数、是否允许鼠标滚轮缩放。
  • 内置世界地图、全国地图、省份地图、地区地图,可以精确到县,所有地图全部离线使用。
  • 内置了各省市json数据文件转js文件功能,如有数据更新自行转换即可,支持单个文件转换和一键转换所有文件。
  • 内置了从json文件或者js文件获取该区域的所有名称和经纬度信息集合的功能,可以通过该方法获取到信息用来显示。
  • 依赖浏览器组件显示地图,提供的demo支持webkit、webengine、ie 三种方式加载网页。
  • 拓展性极强,可以依葫芦画瓢自行增加各种精美的echarts组件,做出牛逼的效果。
  • 内置的仪表盘组件提供交互功能,demo演示中包含了对应的代码。
  • 函数接口友好和统一,使用简单方便,就一个类。
  • 支持任意Qt版本、任意系统、任意编译器。

三、体验地址

体验地址:https://pan.baidu.com/s/1Ie1xGLv7tSL-9vfsv28w1Q 提取码: wf4f   文件名:bin_map.zip
国内站点:https://gitee.com/feiyangqingyun
国际站点:https://github.com/feiyangqingyun

四、效果图

在这里插入图片描述

五、相关代码

//设置窗口大小变动echarts自动拉伸填充,此方法只能横向拉伸
list << QString("  window.onresize = echart.resize;");
//下面的方法用来设置画布的宽度高度
list << QString("  function resize(width, height) {");
list << QString("    var chart = document.getElementById('chart');");
list << QString("    chart.style.width = width + \"px\";");
list << QString("    chart.style.height = height + \"px\";");
list << QString("    echart.resize();");
list << QString("  }");

void frmEcharts::resizeMap()
{
    if (isLoad) {
#ifdef webkit
        QString js = QString("resize(%1, %2)").arg(webView->width()).arg(webView->height());
        webView->page()->mainFrame()->evaluateJavaScript(js);
#elif webengine
        QString js = QString("resize(%1, %2)").arg(webView->width()).arg(webView->height());
        webView->page()->runJavaScript(js);
#endif
    }
}

到此这篇关于Qt地图自适应拉伸的实现示例的文章就介绍到这了,更多相关Qt地图自适应拉伸的实现示例内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言实现简单学生学籍管理系统

    C语言实现简单学生学籍管理系统

    这篇文章主要为大家详细介绍了C语言实现简单学生学籍管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 在C++中反射调用.NET的方法(一)

    在C++中反射调用.NET的方法(一)

    为什么要在C++中调用.NET呢?接下来通过本文给大家介绍在C++中反射调用.NET的方法(一),需要的朋友参考下吧
    2017-02-02
  • c语言中scanf的基本用法

    c语言中scanf的基本用法

    这篇文章主要给大家介绍了关于c语言中scanf的基本用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 使用C语言中的time函数获取系统时间

    使用C语言中的time函数获取系统时间

    在C语言中可以使用time函数来获取系统时间,以下对time函数进行了介绍,需要的朋友可以过来参考下
    2013-07-07
  • C语言scandir函数获取文件夹内容的实现

    C语言scandir函数获取文件夹内容的实现

    scandir 函数用于列举指定目录下的文件列表,本文主要介绍了C语言scandir函数获取文件夹内容的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 深度理解C语言中的关键字static

    深度理解C语言中的关键字static

    在C语言中static主要定义全局静态变量、定义局部静态变量、定义静态函数,下面这篇文章主要给大家介绍了关于C语言中关键字static的相关资料,需要的朋友可以参考下
    2021-08-08
  • Qt6+QML实现Windows屏幕录制功能

    Qt6+QML实现Windows屏幕录制功能

    Qt6提供了很多丰富的多媒体支持类,本文将为大家详细介绍一下Qt6如何结合QML实现Windows屏幕录制功能,文中的示例代码简洁易懂,有需要的小伙伴可以参考一下
    2025-04-04
  • C语言如何计算一个整数的位数

    C语言如何计算一个整数的位数

    这篇文章主要介绍了C语言如何计算一个整数的位数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • c++中将二维数组元素变换为逆向存放的实现代码

    c++中将二维数组元素变换为逆向存放的实现代码

    编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推
    2020-11-11
  • c++利用windows函数实现计时示例

    c++利用windows函数实现计时示例

    这篇文章主要介绍了c++利用windows函数实现计时示例,需要的朋友可以参考下
    2014-05-05

最新评论