Qt地圖自適應(yīng)拉伸的實(shí)現(xiàn)示例
一、前言
用過(guò)echart的人都會(huì)遇到一個(gè)問(wèn)題,就算是代碼中寫(xiě)了window.onresize = echart.resize,也只是橫向自適應(yīng)拉伸填充頁(yè)面,垂直方向不會(huì)變化,除非指定高度才可以,這就比較郁悶了,為何echart本身不會(huì)自適應(yīng)呢?按道理不應(yīng)該啊,莫非實(shí)現(xiàn)起來(lái)很困難?好吧先不管這個(gè)了,這個(gè)問(wèn)題搜索出來(lái)一大堆解決方案,在Qt的瀏覽器控件中也有這個(gè)問(wèn)題,為了解決這個(gè)問(wèn)題想了兩個(gè)策略,一種是程序本身檢測(cè)尺寸變化,然后重新設(shè)置高度并載入網(wǎng)頁(yè),一種是js函數(shù)設(shè)置對(duì)應(yīng)的寬高,什么時(shí)候執(zhí)行呢,就是在程序界面尺寸變化的時(shí)候,兩種辦法對(duì)比下來(lái),最終選用的后者,因?yàn)樾Ч容^好,還是異步執(zhí)行的,無(wú)需重新加載網(wǎng)頁(yè),那個(gè)每次高度變化了就重新加載網(wǎng)頁(yè)的辦法在早期的作品中用過(guò),看起來(lái)好傻逼比的。
二、功能特點(diǎn)
- 同時(shí)支持閃爍點(diǎn)圖、遷徙圖、區(qū)域地圖、儀表盤(pán)等。
- 可以設(shè)置標(biāo)題、提示信息、背景顏色、文字顏色、線條顏色、區(qū)域顏色等各種顏色。
- 可設(shè)置城市的名稱、值、經(jīng)緯度 集合。
- 可設(shè)置地圖的放大倍數(shù)、是否允許鼠標(biāo)滾輪縮放。
- 內(nèi)置世界地圖、全國(guó)地圖、省份地圖、地區(qū)地圖,可以精確到縣,所有地圖全部離線使用。
- 內(nèi)置了各省市json數(shù)據(jù)文件轉(zhuǎn)js文件功能,如有數(shù)據(jù)更新自行轉(zhuǎn)換即可,支持單個(gè)文件轉(zhuǎn)換和一鍵轉(zhuǎn)換所有文件。
- 內(nèi)置了從json文件或者js文件獲取該區(qū)域的所有名稱和經(jīng)緯度信息集合的功能,可以通過(guò)該方法獲取到信息用來(lái)顯示。
- 依賴瀏覽器組件顯示地圖,提供的demo支持webkit、webengine、ie 三種方式加載網(wǎng)頁(yè)。
- 拓展性極強(qiáng),可以依葫蘆畫(huà)瓢自行增加各種精美的echarts組件,做出牛逼的效果。
- 內(nèi)置的儀表盤(pán)組件提供交互功能,demo演示中包含了對(duì)應(yīng)的代碼。
- 函數(shù)接口友好和統(tǒng)一,使用簡(jiǎn)單方便,就一個(gè)類。
- 支持任意Qt版本、任意系統(tǒng)、任意編譯器。
三、體驗(yàn)地址
體驗(yàn)地址:https://pan.baidu.com/s/1Ie1xGLv7tSL-9vfsv28w1Q 提取碼: wf4f?? 文件名:bin_map.zip
國(guó)內(nèi)站點(diǎn):https://gitee.com/feiyangqingyun
國(guó)際站點(diǎn):https://github.com/feiyangqingyun
四、效果圖

五、相關(guān)代碼
//設(shè)置窗口大小變動(dòng)echarts自動(dòng)拉伸填充,此方法只能橫向拉伸
list << QString(" window.onresize = echart.resize;");
//下面的方法用來(lái)設(shè)置畫(huà)布的寬度高度
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
}
}
到此這篇關(guān)于Qt地圖自適應(yīng)拉伸的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Qt地圖自適應(yīng)拉伸的實(shí)現(xiàn)示例內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生學(xué)籍管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生學(xué)籍管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
使用C語(yǔ)言中的time函數(shù)獲取系統(tǒng)時(shí)間
在C語(yǔ)言中可以使用time函數(shù)來(lái)獲取系統(tǒng)時(shí)間,以下對(duì)time函數(shù)進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下2013-07-07
C語(yǔ)言scandir函數(shù)獲取文件夾內(nèi)容的實(shí)現(xiàn)
scandir?函數(shù)用于列舉指定目錄下的文件列表,本文主要介紹了C語(yǔ)言scandir函數(shù)獲取文件夾內(nèi)容的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Qt6+QML實(shí)現(xiàn)Windows屏幕錄制功能
Qt6提供了很多豐富的多媒體支持類,本文將為大家詳細(xì)介紹一下Qt6如何結(jié)合QML實(shí)現(xiàn)Windows屏幕錄制功能,文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以參考一下2025-04-04
C語(yǔ)言如何計(jì)算一個(gè)整數(shù)的位數(shù)
這篇文章主要介紹了C語(yǔ)言如何計(jì)算一個(gè)整數(shù)的位數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
c++中將二維數(shù)組元素變換為逆向存放的實(shí)現(xiàn)代碼
編程將一個(gè)二維數(shù)組元素變換為逆向存放,即按元素在內(nèi)存中的物理排列位置,第一個(gè)元素變成倒數(shù)第一個(gè)元素,第二個(gè)元素變成倒數(shù)第二個(gè)元素,依此類推2020-11-11
c++利用windows函數(shù)實(shí)現(xiàn)計(jì)時(shí)示例
這篇文章主要介紹了c++利用windows函數(shù)實(shí)現(xiàn)計(jì)時(shí)示例,需要的朋友可以參考下2014-05-05

