您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Qt怎么實(shí)現(xiàn)儀表盤(pán)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Qt怎么實(shí)現(xiàn)儀表盤(pán)”吧!
儀表盤(pán)在很多汽車(chē)和物聯(lián)網(wǎng)相關(guān)的系統(tǒng)中很常用,最直觀的其實(shí)就是汽車(chē)儀表盤(pán),這個(gè)以前主要是機(jī)械的儀表,現(xiàn)在逐步改成了智能的帶屏帶操作系統(tǒng)的儀表,這樣美觀性和拓展性功能性大大增強(qiáng)了,上了操作系統(tǒng)的話,除了基本的儀表指示以外,還可以聽(tīng)歌導(dǎo)航接電話等,這應(yīng)該也是目前汽車(chē)領(lǐng)域發(fā)展的一個(gè)大趨勢(shì),Qt在這方面還單獨(dú)搞了個(gè)3D studio設(shè)計(jì)的,可以讓美工直接設(shè)計(jì)好效果圖,設(shè)置一些動(dòng)畫(huà)效果之類(lèi)的,可以說(shuō)這些年Qt公司也在不斷謀求新的發(fā)展,探索新的機(jī)遇,找到新的增長(zhǎng)點(diǎn)和突破口。
用Qt開(kāi)發(fā)儀表盤(pán)控件非常方便,無(wú)論是用widget的painter還是qml,尤其是qml,內(nèi)置的那些動(dòng)畫(huà)效果非常適合做這類(lèi)的應(yīng)用,這次不討論如何用qt開(kāi)發(fā)儀表盤(pán),而是直接用echart內(nèi)置的儀表盤(pán)控件,做的也挺好的,不知道echart這么小的一個(gè)文件,還能有如此多的效果,連儀表盤(pán)都有,這個(gè)非常震驚,儀表盤(pán)的使用在官網(wǎng)非常詳細(xì),與Qt的結(jié)合難點(diǎn)可能就在如何交互,Qt中無(wú)論是webkit也還還是webengine,都提供了runJavaScript或者evaluateJavaScript函數(shù)類(lèi)來(lái)執(zhí)行js函數(shù),只需要在html文件寫(xiě)好對(duì)應(yīng)的js文件函數(shù)就可以直接觸發(fā)執(zhí)行,比如設(shè)置儀表盤(pán)的角度我這里寫(xiě)的是setGaugeValue(value),則只需要runJavaScript或者evaluateJavaScript參數(shù)傳入 setGaugeValue(88)這個(gè)即可,只需要根據(jù)界面上的滾動(dòng)條或者滑塊的值動(dòng)態(tài)改變setGaugeValue的參數(shù)即可。
同時(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è)類(lèi)。
支持任意Qt版本、任意系統(tǒng)、任意編譯器。
QString Echarts::newChartGauge(const QString &title, int value) { QStringList body; body << QString(" var option = {"); body << QString(" backgroundColor: '%1',").arg(bgColor.name()); body << QString(" tooltip: {"); body << QString(" formatter: '{a} <br/> : {c}%'"); body << QString(" },"); body << QString(" toolbox: {"); body << QString(" feature: {"); body << QString(" restore: {},"); body << QString(" saveAsImage: {}"); body << QString(" }"); body << QString(" },"); body << QString(" series: ["); body << QString(" {"); body << QString(" type: 'gauge',"); body << QString(" detail: {"); body << QString(" formatter: '{value}%',"); body << QString(" textStyle: {color: '%1', fontSize: 30},").arg(textColor.name()); body << QString(" },"); body << QString(" title: {"); body << QString(" textStyle: {color: '%1', fontSize: 30}").arg(textColor.name()); body << QString(" },"); body << QString(" data: [{name: '%1', value: value}]").arg(title); body << QString(" }"); body << QString(" ]"); body << QString(" };"); QString funName = QString("setGaugeValue(value)"); QString funInit = QString("setGaugeValue(%1)").arg(value); return newChart(body.join("\r\n "), funName, funInit); }
到此,相信大家對(duì)“Qt怎么實(shí)現(xiàn)儀表盤(pán)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。