5 ui自适应窗口_Qt编写地图综合应用5-自适应拉伸

db08fb78f7084df8124cf9eb6b92522f.gif

一、前言

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

二、功能特点

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

三、体验地址

  1. 体验地址:https://pan.baidu.com/s/1uQsDQO5E5crUBN2J-nPeLQ 提取码:1jkp 文件名:bin_map.zip
  2. 国内站点:https://gitee.com/feiyangqingyun
  3. 国际站点:https://github.com/feiyangqingyun
  4. 个人主页:https://blog.csdn.net/feiyangqingyun
  5. 知乎主页:https://www.zhihu.com/people/feiyangqingyun/

四、效果图

f8e0f4895d527bcae3443e0cfa924089.gif

五、相关代码

//设置窗口大小变动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 webkitQString js = QString("resize(%1, %2)").arg(webView->width()).arg(webView->height());webView->page()->mainFrame()->evaluateJavaScript(js);
#elif webengineQString js = QString("resize(%1, %2)").arg(webView->width()).arg(webView->height());webView->page()->runJavaScript(js);
#endif}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485938.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么俄罗斯的数学那么牛?

编辑 ∑Gemini来源:奇趣数学苑但在国际上也有一个很著名的说法&#xff0c;就是世界上最好的大学&#xff0c;其实是“美国的学校&#xff0c;中国的学生&#xff0c;俄罗斯的教授”。俄罗斯数学家佩雷尔曼虽然俄罗斯现在相比以前来说&#xff0c;尤其明显的是在一些需要大量设…

查看屏幕大小_疑似“iPhone 12” 的OLED屏幕组件泄露

来自可靠的泄密者的新照片显示了即将面世的“ iPhone 12”所搭载的OLED屏幕。这名泄密者以前曾显示过未来苹果产品的准确图像&#xff0c;此前曾展示过苹果A14芯片组的早期图片&#xff0c;并声称“ iPhone 12”将配备20W电源适配器。现在他在推特上发布了一张照片&#xff0c;…

搭建Hexo博客(一)-创建Hexo环境

Hexo配合github&#xff0c;可以创建自己的博客。基本原理是使用Hexo生成静态页面&#xff0c;发布到github上。在本地需要搭建Hexo环境。 1、安装nodejs 下载并安装NodeJS&#xff0c;官网地址&#xff1a;https://nodejs.org/en/ 2、安装完后&#xff0c;查看安装情况 1 node…

Nature:2020年最佳科学影像,每一张都是壁纸,每一张都是历史

文章来源&#xff1a;学术头条2020年是独一无二的一年。COVID-19大流行将科学推到了最前沿&#xff0c;并深刻影响了人们的生活。但是这一年也产生了许多与病毒无关的新影像。从薄薄的太阳能电池&#xff0c;到经过基因编辑的鱿鱼&#xff0c;下面就是Nature新闻和艺术团队评选…

转 从红帽、GitHub和Docker看开源商业模式的进阶

从红帽、GitHub和Docker看开源商业模式的进阶 发表于2014-12-16 10:26| 7594次阅读| 来源http://stratechery.com/| 0 条评论| 作者Ben ThompsonDocker红帽GitHub开源CoreOS摘要&#xff1a;从技术角度来说&#xff0c;Docker无疑是可圈可点的&#xff0c;比如“write once run…

antimalware可以关闭吗_iPhone最好关闭这4个设置,手机流畅还省电

你抢到新款的iPhone12了吗&#xff1f;80%的小伙伴都会忽略的设置&#xff0c;你的iPhone手机最好关闭以下这4个设置。①关闭ios系统更新操作步骤&#xff1a;打开【设置】-【通用】-【软件更新】-【自动更新】-【下载iOS更新】&#xff0c;关闭即可。这样就不会莫名其妙地下载…

MVVM Light Toolkit使用指南

原文地址&#xff1a; https://blog.csdn.net/ldld1717/article/details/77040077概述MVVM Light Toolkit是一个Android MVVM 轻量级工具库&#xff0c;主要目的是更快捷方便的构建Android MVVM应用程序&#xff0c;工具库添加了一些Data Binding 不支持的属性&#xff0c;还有…

段永朝:界面——之内、之外与之间

来源&#xff1a;苇草智酷01画一个圈儿&#xff0c;就把平面分成圈内&#xff0c;圈外。这个圈儿&#xff0c;就成了界面。垒一道墙&#xff0c;就把空间分成墙里&#xff0c;墙外。这个墙&#xff0c;就成了界面。看一眼手机上的钟表&#xff0c;那一刻闪现的数字&#xff0c;…

mysql面试考点_mysql面试知识点

1 引擎-MyISAM和InnoDB的区别a 是否支持行级锁 :MyISAM 只有表级锁(table-level locking)&#xff0c;而InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁。b 是否支持事务和崩溃后的安全恢复&#xff1a;MyISAM 强调的是性能&#xff0c;每次查询具有原子性,其执行…

jquery 快速入门二

---恢复内容开始--- 操作标签 样式操作 样式类 addClass();//添加指定的CSS类名。 removeClass();//移除指定的类名. hasClass();//判断样式不存在 toggleClass();//切换css类名&#xff0c;如果有就移除&#xff0c;如果没有就添加 示例&#xff1a;开关灯和模态框 CSS css(&q…

中国工程院《全球工程前沿2020》报告在京发布

来源&#xff1a;科学网作者&#xff1a;李晨阳12月18日上午&#xff0c;中国工程院《全球工程前沿2020》报告在京发布。报告围绕机械与运载工程、信息与电子工程、化工冶金与材料工程、能源与矿业工程、土木水利与建筑工程、环境与轻纺工程、农业、医药卫生、工程管理9个领域&…

AlphaFold证明人工智能可以解决基本的科学问题

来源&#xff1a;IEEE电气电子工程师Gif: DeepMindTwo examples of protein targets in the free modelling category.任何人工智能的成功实施都依赖于以正确的方式提出正确的问题。这就是英国人工智能公司DeepMind&#xff08;Alphabet的子公司&#xff09;在利用其神经网络解…

Java中文件的创建

File filenew File&#xff08;“text.txt”&#xff09; 运行这行代码&#xff0c;我们会发现相应的文件夹下无法找到创建的text.txt 首先 File 类是对文件系统的映射 并不是硬盘上真实的文件 所以 new File("xxx.xxx") 只是在内存中创建File文件映射对象,而并不会…

计算的极限(零):逻辑与图灵机

来源&#xff1a; 数学职业家提出问题和解决问题的人2012&#xff0c;图灵诞辰100周年&#xff0c;献给这位伟大的开拓者。计算无处不在。走进一个机房&#xff0c;在服务器排成的一道道墙之间&#xff0c;听着风扇的鼓噪&#xff0c;似乎能嗅出0和1在CPU和内存之间不间断的流动…

java修改list中对象的值_Java中List集合的一点总结

为什么要用接口引用指向实现类的对象&#xff1f;这种写法其实java多态的表现形式多态的定义&#xff1a;指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。&#xff08;发送消息就是函数调用List list;是在栈区开辟一个空间…

Science公布年度十大科学突破!新冠疫苗居首位

来源 &#xff1a; 新华社编辑&#xff1a;宗华排版&#xff1a;郭刚美国《科学》杂志17日公布其评选的2020年十大科学突破&#xff0c;“以创纪录的速度开发和测试急需的新冠疫苗”当选头号突破。中国、美国、欧洲等地科研人员在2020年年初获得新冠病毒基因组序列后&#xff0…

openlayers实例_介绍OpenLayers

简介Web开发有一个专门的方向就是Web GIS&#xff0c;而Openlayers库就是Web GIS里的一个翘楚&#xff0c;想要开源的Web GIS的JavaScript库几乎就没有别的选择。OpenLayers的官网是OpenLayers - Welcome​openlayers.org目前最新的版本是5.3.x。它的github地址是openlayers/op…

macos Jetbrains IDEA用户自定义vm配置信息存储路径, IDEA点击无反应 无法打开问题解决

Jetbrains Clion, IDEA 用户在应用里面修改了自定义的VM配置后的存储路径为 ~/Library/Application Support/JetBrains/xxx2023.3/xxx.vmoptions xxx为你安装的APP名称, 如 Clion .IntelliJIdea 这里的自定义配置如果配置有误就会直接导致JetBrains软件无法打开, 即 点击打开…

【sping揭秘】19、关于spring中jdbctemplate中的DataSource怎么来呢

我们这是可以正好借助之前学的factorybean类&#xff0c;自己吧jdbctemplate加载到spring容器中&#xff0c;我们可以封装多个这种对象&#xff0c;那么可以实现针对不同的数据库的jdbctemplate 首先我们肯定要引入对应的jar&#xff0c;来构建数据源对象 <dependency>&l…

2020年度“中国神经科学重大进展”获奖名单【附成果介绍】

来源&#xff1a;brainnews编辑&#xff1a;Simon为了推动神经科学领域的创新发展&#xff0c;充分展示和宣传神经科学领域的重大科研成果&#xff0c;经中国神经科学学会七届二次常务理事会一致通过&#xff0c;开展2020年度“中国神经科学重大进展”推荐工作。按照相关程序&a…