前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt开源作品5-仪表盘交互

Qt开源作品5-仪表盘交互

原创
作者头像
feiyangqingyun
修改2020-04-29 10:03:30
8060
修改2020-04-29 10:03:30
举报
文章被收录于专栏:Qt项目实战

一、前言

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只是内存使用上增加了些。

二、代码思路

代码语言:txt
复制
第一步:准备网页文件
```c++

<html>

<head>

代码语言:txt
复制
<meta charset="utf-8">
代码语言:txt
复制
<title>ECharts</title>
代码语言:txt
复制
<script src="echarts.min.js"></script>

</head>

<body>

代码语言:txt
复制
<div id="main" style="height:300px;"></div>

</body>

</html>

代码语言:txt
复制
第二步:准备JS函数
```c++

function setGaugeValue(value){

代码语言:txt
复制
var option = {
代码语言:txt
复制
tooltip : {
代码语言:txt
复制
    formatter: "{a} <br/>{b} : {c}%"
代码语言:txt
复制
},
代码语言:txt
复制
toolbox: {
代码语言:txt
复制
    feature: {
代码语言:txt
复制
        restore: {},
代码语言:txt
复制
        saveAsImage: {}
代码语言:txt
复制
    }
代码语言:txt
复制
},
代码语言:txt
复制
series: [
代码语言:txt
复制
    {
代码语言:txt
复制
        name: '业务指标',
代码语言:txt
复制
        type: 'gauge',
代码语言:txt
复制
        detail: {formatter:'{value}%'},
代码语言:txt
复制
        data: [{value: value, name: '完成率'}]
代码语言:txt
复制
    }
代码语言:txt
复制
]

};

代码语言:txt
复制
第三步:数据交互
```c++

void Widget::on_horizontalSlider_valueChanged(int value)

{

代码语言:txt
复制
QString js = QString("setGaugeValue(%1)").arg(value);

#ifdef webkit

代码语言:txt
复制
webView->page()->mainFrame()->evaluateJavaScript(js);

#else

代码语言:txt
复制
webView->page()->runJavaScript(js);

#endif

}

代码语言:txt
复制

三、效果图

echartgauge.gif
echartgauge.gif

四、开源主页

以上作品完整源码下载都在开源主页,会持续不断更新作品数量和质量,欢迎各位关注。

  1. 国内站点:https://gitee.com/feiyangqingyun/QWidgetDemo
  2. 国际站点:https://github.com/feiyangqingyun/QWidgetDemo
  3. 个人主页:https://blog.csdn.net/feiyangqingyun
  4. 知乎主页:https://www.zhihu.com/people/feiyangqingyun/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、代码思路
  • 三、效果图
  • 四、开源主页
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档