当前位置: 首页 > news >正文

《QT实用小工具·十一》Echart图表JS交互之仪表盘

1、概述
源码放在文章末尾

该项目为Echart图表JS交互之炫酷的仪表盘,可以用鼠标实时改变仪表盘的读数。
下面为demo演示:
在这里插入图片描述

该项目部分代码如下:

#include "widget.h"
#include "ui_widget.h"
#include "qurl.h"#ifdef webkit
#include <QtWebKit>
#if (QT_VERSION >= QT_VERSION_CHECK(5,0,0))
#include <QtWebKitWidgets>
#endif
#elif webengine
#include <QtWebEngineWidgets>
#endifWidget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->initForm();
}Widget::~Widget()
{delete ui;
}void Widget::initForm()
{//初始化浏览器控件属性,一个项目中只需要设置一次就行
#ifdef webkitQWebSettings *webSetting = QWebSettings::globalSettings();webSetting->setAttribute(QWebSettings::JavascriptEnabled, true);webSetting->setAttribute(QWebSettings::PluginsEnabled, true);webSetting->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
#elif webengineQWebEngineSettings *webSetting = QWebEngineProfile::defaultProfile()->settings();webSetting->setAttribute(QWebEngineSettings::JavascriptEnabled, true);webSetting->setAttribute(QWebEngineSettings::PluginsEnabled, true);webSetting->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true);
#endif//实例化多个浏览器控件,设置背景透明
#ifdef webkitfor (int i = 0; i < 4; ++i) {QWebView *webView = new QWebView;webView->setStyleSheet(QString("background:%1;").arg("rgba(255,0,0,0)"));webViews << webView;}
#elif webenginefor (int i = 0; i < 4; ++i) {QWebEngineView *webView = new QWebEngineView;webView->page()->setBackgroundColor(Qt::transparent);webViews << webView;}
#endif//添加到布局
#if (defined webkit) || (defined webengine)ui->gridLayout->addWidget(webViews.at(0), 0, 0);ui->gridLayout->addWidget(webViews.at(1), 0, 1);ui->gridLayout->addWidget(webViews.at(2), 1, 0);ui->gridLayout->addWidget(webViews.at(3), 1, 1);
#endif//加载html文件QUrl url("file:///" + qApp->applicationDirPath() + "/gauge.html");
#ifdef webkitforeach (QWebView *webView, webViews) {webView->load(url);}
#elif webengineforeach (QWebEngineView *webView, webViews) {webView->load(url);}
#endif
}void Widget::on_horizontalSlider_valueChanged(int value)
{//执行js函数QString js = QString("setGaugeValue(%1)").arg(value);
#ifdef webkitforeach (QWebView *webView, webViews) {webView->page()->mainFrame()->evaluateJavaScript(js);}
#elif webengineforeach (QWebEngineView *webView, webViews) {webView->page()->runJavaScript(js);}
#endif
}

源码下载

http://www.lryc.cn/news/333654.html

相关文章:

  • 深入浅出理解ArrayBuffer对象TypedArray和DataView视图
  • 人工智能 - 服务于谁?
  • 软考高级架构师:嵌入式系统的内核架构
  • 分布式锁实战
  • 【VMware Workstation】启动虚拟机报错“此主机支持 AMD-V,但 AMD-V 处于禁用状态”
  • 非关系型数据库(缓存数据库)redis的基础认知与安装
  • Go语言如何处理文件
  • Java基础知识总结(42)
  • C++ | Leetcode C++题解之第6题Z字形变换
  • JavaEE——手把手教你实现简单的 servlet 项目
  • X年后,ChatGPT会替代底层程序员吗?
  • OpenAI 推出新网络爬虫GPTBot,为GPT-5做准备
  • 【Easy云盘 | 第二篇】后端统一设计思想
  • c语言:模拟字符串拷贝功能(strcpy),面试题
  • 信创环境ES索引管理脚本:close, delete
  • torch-v1.3.1-build
  • C语言宏定义笔记
  • 设计模式:生活中的观察者模式
  • Qt实现Kermit协议(四)
  • 苏州金龙助力旅游客运加速蜕变
  • 头盔检测 | 基于Caffe-SSD目标检测算法实现的建筑工地头盔检测
  • Stable diffusion 加载扩展列表报错解决方法
  • Git(8)之分支间同步特定提交
  • 万得AI算法工程师一面面试题6道|含解析
  • 蓝桥杯23年第十四届省赛-异或和之和|拆位、贡献法
  • Unity进阶之路(1)回顾与思考
  • 【C语言】——指针八:指针运算笔试题解析
  • JVM字节码与类的加载——class文件结构
  • 小程序如何通过公众号发送新订单提醒
  • 聊聊公众号最让我不爽的两个痛点