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

boyanx2周前技术教程3

## 一、前言

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

相关文章

后端接活儿利器:基于Vue,拖拽一键生成UI界面,简洁漂亮已开源

简介基于vue可视化拖拽编辑,页面生成工具。提升前端开发效率,可集成至移动端项目作为通过定义 JSON 直接生成 UI 界面。安装教程npm install (安装 node_modules 模块)n...

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

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

Python与数据可视化:Dash框架入门

Dash 是一个用于创建交互式 Web 应用程序的 Python 框架,它非常适合用于数据分析和可视化的项目。Dash 基于 Flask、Plotly.js 和 React.js 构建,因此可以轻松地...

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

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

基于vue实现可视化拖拽编辑器,页面生成工具,提升前端开发效率

项目介绍基于vue实现的可视化拖拽编辑器,实现页面生成工具,提升前端开发效率。可以基层到移动端项目作为自定义json直接生成UI页面。项目特点功能特点页面管理页面设置组件管理组件设置数据导入导出预览重...

前端工程师在业余时间如何提高自身能力——造轮子

分享之前造的几个轮子的过程:一、 SPA框架两年多以前,当时我们项目用的技术栈是:Backbone + Mustache + jQuery。在我们当时的环境下,主要组成有:1. Backbone提供了...

发表评论    

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