Qt开源作品5-仪表盘交互(qt 图表控件)

boyanx5个月前技术教程12

## 一、前言

Echart是百度研发团队开发的一款报表视图JS插件,功能十分强大,是本人用过的国产作品中最牛逼的,记得四五年前就在qt中使用过,当时用的浏览器控件是webkit,由于5.6以后的版本不再支持webkit,而换用webengine内核,很多人在下载使用后不能正常编译,今天特意抽空做个webengine版本,使得同时支持webkit和webengine。

在webkit中执行JS用的是webView->page()->mainFrame()->evaluateJavaScript(js);

而webengine用的是webView->page()->runJavaScript(js);

在执行效率上,webengine甩webkit好几条街,在拖动滑块动态设置值的时候,webengine的CPU占用只有1%,而webkit居然达到了7%,恐怖!怪不得webkit逐渐被qt抛弃了,webengine只是内存使用上增加了些。

## 二、代码思路

第一步:准备网页文件
```c++
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <script src="echarts.min.js"></script>
</head>
<body>
    <div id="main" style="height:300px;"></div>
</body>
</html>
```

第二步:准备JS函数
```c++
function setGaugeValue(value){
    var option = {
    tooltip : {
        formatter: "{a} <br/>{b} : {c}%"
    },
    toolbox: {
        feature: {
            restore: {},
            saveAsImage: {}
        }
    },
    series: [
        {
            name: '业务指标',
            type: 'gauge',
            detail: {formatter:'{value}%'},
            data: [{value: value, name: '完成率'}]
        }
    ]
  };
```

第三步:数据交互
```c++
void Widget::on_horizontalSlider_valueChanged(int value)
{
    QString js = QString("setGaugeValue(%1)").arg(value);
#ifdef webkit
    webView->page()->mainFrame()->evaluateJavaScript(js);
#else
    webView->page()->runJavaScript(js);
#endif
}

## 三、效果图



## 四、开源主页

1. 国内站点:[
https://gitee.com/feiyangqingyun/QWidgetDemo](
https://gitee.com/feiyangqingyun/QWidgetDemo)

2. 国际站点:[
https://github.com/feiyangqingyun/QWidgetDemo](
https://github.com/feiyangqingyun/QWidgetDemo)

标签: slider.js

相关文章

就算你不会 Web 开发,也能让数据“动”起来的开源项目

本文面向有 Python 基础的小伙伴,有 Web 基础的更好作者:HelloGitHub-吱吱这里是 HelloGitHub 推出的《讲解开源项目》系列,今天要向小伙伴们介绍的是一个能够快速地把数据...

小程序-如何获取用户表单控件中的值

背景在小程序开发中,经常有用到表单,我们往往需要在小程序端获取用户表单输入框中的值(通常用户输入的有:switch,input,checkbox,slider,radio,picker)等,通过触发事...

纯代码给WordPress侧边栏小工具添加幻灯片功能

WordPress主题大多数都自带有幻灯片功能,不过很少看到有在WordPress侧边栏实现幻灯片功能的。今天,我们就以Nana主题为例说明纯代码如何给WordPress侧边栏小工具添加幻灯片功能。W...

微场景快速搭建方案:触景js发布1.3版本

切图触景JS发布,新增了手指触摸的刮刮卡效果组件QietuSwiperMask,放弃了对原生jQuery.mobile改造的swipeup,swipedown函数,采用了开源的触摸插件jquery.t...

python下又一款漂亮超炫酷的动态数据可视化工具——可动态交互

python下有很多漂亮的数据可视化库,例如 Matplotlib、Seaborn、Bokeh、Plotly、Pyecharts等等,我们直接使用这些第三方库来进行漂亮的数据可视化操作。虽然这些库都可...

超详细带你从入门开始,开发一个超实用的浏览器插件

相信大家平时在电脑上逛掘金、知乎网站时,肯定有看到过下面超级烦人的跳转拦截确认页面虽然这种拦截的初衷是好的,但是我相信大家平时肯定不会因为有了这个拦截提醒页面,就会对即将打开的网站安全性提高自己的警惕...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。