当前位置: 首页 > 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
}

源码下载

相关文章:

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

1、概述 源码放在文章末尾 该项目为Echart图表JS交互之炫酷的仪表盘&#xff0c;可以用鼠标实时改变仪表盘的读数。 下面为demo演示&#xff1a; 该项目部分代码如下&#xff1a; #include "widget.h" #include "ui_widget.h" #include "qurl.h&q…...

深入浅出理解ArrayBuffer对象TypedArray和DataView视图

目录 举例理解 1. ArrayBuffer对象 2. TypedArray 3. DataView 总结 具体讲解 1. ArrayBuffer对象 2. TypedArray 3. DataView 注意事项 举例理解 先举个简单的例子理解ArrayBuffer对象TypedArray和DataView视图的概念和之间的关系 1. ArrayBuffer对象 想象一个场景…...

人工智能 - 服务于谁?

人工智能服务于谁&#xff1f; 人工智能服务于生存&#xff0c;其最终就是服务于战争&#xff08;热战、技术战、经济战&#xff09; 反正就是为了活着而战的决策。 既然人工智能所有结果&#xff0c;来自大数据的分挖掘&#xff08;分析&#xff09;也就是数据的应用&#x…...

软考高级架构师:嵌入式系统的内核架构

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…...

分布式锁实战

4、分布式锁 4.1 、基本原理和实现方式对比 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;那么我们就能锁住线程&#xff0c;不让线程进行&#x…...

【VMware Workstation】启动虚拟机报错“此主机支持 AMD-V,但 AMD-V 处于禁用状态”

问题出现步骤&#xff1a; 打开虚拟机&#xff1a; 然后报错&#xff1a; “此主机支持 AMD-V&#xff0c;但 AMD-V 处于禁用状态。 如果已在 BIOS/固件设置中禁用 AMD-V&#xff0c;或主机自更改此设置后从未重新启动&#xff0c;则 AMD-V 可能被禁用。 (1) 确认 BIOS/固件设…...

非关系型数据库(缓存数据库)redis的基础认知与安装

目录 一.关系型数据库和非关系型数据库 关系型数据库 非关系型数据库 关系数据库与非关系型数据库的区别 ①非关系数据 关系型数据库 非关系型数据库产生背景 数据存储流向 非关系型数据库 关系数据库 二.redis的简介 1.概念 2.Redis 具有以下几个优点: 3.Redi…...

Go语言如何处理文件

1.文件的重要性 文件不过是硬盘中的数据,看起来好像没什么了不起,但实际上,文件能够让程序员管理配置、存储程序的状态乃至从底层操作系统中读取数据。 UNIX型操作系统的一个重要特征是,将一切都视为文件。这意味着在操作系统看来,从键盘到打印机的所有东西都可像文件那样…...

Java基础知识总结(42)

&#xff08;1&#xff09;Java关键字的相关知识进行了复习 考试过程中“main”是主方法名&#xff0c;而不是Java关键字 &#xff08;2&#xff09;类型转换 当一个算术表达式中包含多个基本类型的值时&#xff0c;整个算术表达式的数据类型将发生自动提升&#xff0c;所有的b…...

C++ | Leetcode C++题解之第6题Z字形变换

题目&#xff1a; 题解&#xff1a; class Solution { public:string convert(string s, int numRows) {int n s.length(), r numRows;if (r 1 || r > n) {return s;}string ans;int t r * 2 - 2;for (int i 0; i < r; i) { // 枚举矩阵的行for (int j 0; j i &l…...

JavaEE——手把手教你实现简单的 servlet 项目

文章目录 一、什么是 Servlet二、创建一个简单的 Servlet 程序1. 创建项目2.引入依赖3. 创建目录4.编写代码5. 打包程序6. 部署7.验证整体过程总结 三、使用 Smart Tomcat 插件简化项目创建四、创建项目时可能遇到的几个问题。 一、什么是 Servlet Servlet 是一种实现 动态页面…...

X年后,ChatGPT会替代底层程序员吗?

能不能替代&#xff0c;真的很难说&#xff0c;因为机器换掉人&#xff0c;这其实是一个伦理问题。 其实说白了&#xff0c;任何行业在未来都会被AI或多或少的冲击到&#xff0c;因为ChatGPT做为一个可以持续提升智能的AI&#xff0c;在某些方面的智能程度超过人类并不是什么难…...

OpenAI 推出新网络爬虫GPTBot,为GPT-5做准备

目录 一、GPTBot是什么&#xff1f;它是如何工作的&#xff1f;二、GPTBot 与 Google Bot 等搜索引擎网络爬虫有何不同&#xff1f;三、GPTBot 与 Perplexity AI 的网络爬虫有何不同&#xff1f;四、允许 GPTBot 爬取有哪些风险和好处&#xff1f;4.1 允许 GPTBot 的好处4.2 允…...

【Easy云盘 | 第二篇】后端统一设计思想

文章目录 4.1后端统一设计思想4.1.1后端统一返回格式对象4.1.2后端统一响应状态码4.1.3后端统一异常处理类4.1.4StringUtils类4.1.5 RedisUtils类 4.1后端统一设计思想 4.1.1后端统一返回格式对象 com.easypan.entity.vo.ResponseVO Data public class ResponseVO<T> …...

c语言:模拟字符串拷贝功能(strcpy),面试题

面试题&#xff1a;优化中的优化&#xff08;10分满分&#xff09; 字符串拷贝:是将一个字符串的内容复制到另一个字符串中的操作。 运用函数模拟字符串拷贝&#xff1a;&#xff08;5分&#xff09; 模拟字符串拷贝 #include <stdio.h> void my_strcpy(char* dest, c…...

信创环境ES索引管理脚本:close, delete

背景 elastic-curator在信创环境无现成安装包&#xff0c;且现成一般无法联网&#xff0c;此时通过脚本管理es索引是最佳选择。 1, 脚本内容: es-close-del.sh [rootmyprojtest001 ]# cat es-close-del.sh #/bin/bash#elastic地址 ELASTIC_URL127.0.0.1:9200 #默认的删除时间…...

torch-v1.3.1-build

编译pytorch-v1.3.1 python版本>3.8会收到报错 error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization, 参见: https://github.com/pytorch/pytorch/issues/28060 简单办法是用python3.7 wget https://mirrors.tuna.tsingh…...

C语言宏定义笔记

把宏名全部大写&#xff0c;函数名不要全部大写。注意宏定义表示数据类型和用 typedef 定义数据说明符的区别。宏定义只是简单的字符串替换&#xff0c;由预处理器来处理&#xff1b; typedef 是在编译阶段由编译器处理的&#xff0c;它并不是简单的字符串替换&#xff0c;而给…...

设计模式:生活中的观察者模式

想象你在社交媒体上关注&#xff08;订阅&#xff09;了一个名人或新闻频道&#xff08;主题&#xff09;。一旦他们发布新内容&#xff0c;所有关注者&#xff08;观察者&#xff09;都会收到通知。这个过程就很像观察者模式的工作原理。 生活场景类比 主题&#xff08;Subj…...

Qt实现Kermit协议(四)

3 实现 3.3 KermitRecvFile 该模块实现了Kermit接收文件功能。 序列图如下&#xff1a; 3.3.1 KermitRecvFile定义 class QSerialPort; class KermitRecvFile : public QObject, public Kermit {Q_OBJECT public:explicit KermitRecvFile(QSerialPort *serial, QObject *…...

从GTS-800到GTS-400:手把手教你移植C#点胶机程序到不同固高控制卡

从GTS-800到GTS-400&#xff1a;工业点胶系统迁移实战指南 当生产线上的点胶机控制卡需要从GTS-800更换为GTS-400时&#xff0c;许多工程师会发现"使用方法类似"这个说法背后隐藏着大量细节差异。去年我们团队完成了一个医疗设备点胶系统的迁移项目&#xff0c;原计划…...

GD32F4开发板GD-LINK驱动安装与Keil配置全攻略(附常见问题解决)

GD32F4开发板GD-LINK驱动安装与Keil配置全攻略&#xff08;附常见问题解决&#xff09; 第一次拿到GD32F4开发板时&#xff0c;很多开发者都会遇到驱动安装失败、Keil识别不到芯片的问题。这些问题看似简单&#xff0c;却可能让新手折腾好几个小时。本文将用最直白的方式&#…...

Claude浏览器扩展漏洞允许通过任意网站实现零点击XSS提示注入

网络安全研究人员披露了Anthropic公司Claude谷歌浏览器扩展中存在的一个漏洞&#xff0c;攻击者只需诱使用户访问特定网页即可触发恶意提示注入。漏洞原理分析Koi Security研究员Oren Yomtov在提供给The Hacker News的报告中指出&#xff1a;"该漏洞允许任何网站静默地向该…...

中国象棋AlphaZero实战指南:从零开始构建超人类棋力AI

中国象棋AlphaZero实战指南&#xff1a;从零开始构建超人类棋力AI 【免费下载链接】ChineseChess-AlphaZero Implement AlphaZero/AlphaGo Zero methods on Chinese chess. 项目地址: https://gitcode.com/gh_mirrors/ch/ChineseChess-AlphaZero 想要打造一个能击败业余…...

简述双亲委派机制以及其优点

面试 概念&#xff1a;加载类的时候先交给自己的父类加载器执行&#xff0c;直到顶层的启动类加载器&#xff0c;如果父加载器能够完成加载&#xff0c;则交给父类加载器&#xff0c;否则自己尝试加载。 优点&#xff1a;保证类的加载的安全性&#xff0c;避免类的重复加载。...

告别‘阴阳屏’:深入MTK平台PQ底层,教你用代码实现多供应商屏幕色彩统一

MTK平台屏幕色彩统一实战&#xff1a;从Gamma参数调试到自动化加载 当你的项目同时采用三家不同供应商的屏幕模组时&#xff0c;用户滑动屏幕时可能看到三种截然不同的白色——这种"阴阳屏"现象在硬件采购多元化的今天越来越普遍。作为深耕显示领域多年的工程师&…...

OpenClaw 底层原理分析

OpenClaw 底层原理深度分析 OpenClaw 是一个智能体编排平台,它的核心设计哲学是 “模型无关、工具优先、记忆驱动”。让我从架构、数据流、核心机制三个维度为你拆解。 🏗️ 一、整体架构 OpenClaw 采用 分层解耦 架构,可以理解为“AI 操作系统”: text ┌──────…...

DOL-CHS-MODS实战指南:从入门到精通的5个关键步骤

DOL-CHS-MODS实战指南&#xff1a;从入门到精通的5个关键步骤 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 副标题&#xff1a;一站式解决Degrees of Lewdity汉化与Mod整合难题&#xff0c;让你轻…...

【开发工具】Trae IDE 解决 Windows 下 C 工程无法跳转定义问题

1. 概要 &#x1f44b; 作为 Trae IDE 使用者&#xff0c;在 Windows 环境打开本地 C 工程时&#xff0c;习惯用 Ctrl 鼠标左键 快速跳转函数 / 变量定义却失效&#xff0c;仅能做文本匹配&#xff0c;无法精准定位语义定义。核心原因是 Trae 依赖 LSP&#xff08;语言服务器协…...

计算机毕业设计springboot众筹系统 基于SpringBoot的校园项目众筹融资平台设计与实现 高校创新创业众筹服务与资金管理系统构建研究

计算机毕业设计springboot众筹系统&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样…...