Qt Chart 模块化封装曲线图

一 版本说明

此文档会从头到尾演示创建初始化流程

二 完成示例

此文章包含:曲线轴设置,曲线切换,单条曲线显示,坐标轴。。。

三 曲线图UI创建

在UI界面拖放一个QWidget,然后在 Widget里面放一个 graphicsView 

四 代码介绍

1 头文件

#include <QString>
#include <QTimer>
#include <QMessageBox>
#include <QDateTime>
#include <QFile>
#include <QFileDialog>
#include <QDebug>
#include <QFileInfo>
#include <QSerialPortInfo>
#include <QtSerialPort/QSerialPort>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QValueAxis>
#include <QPointF>
#include <QAxObject>
#include <QChartView>
#include <QtMath>
#include <QMimeData>//曲线函数声明  一定要包含
QT_CHARTS_USE_NAMESPACE#define MAX_X   (15)    //X轴长度
#define X_LEN   (15)    //X分辨率
#define Y_LEN   (10)    //Y分辨率#define TEC_MIN_Y   (-10)   //Y轴最小长度
#define TEC_MAX_Y   (85)   //Y轴最大长度QTimer *timer1;//用作曲线点定时添加QLabel *label_coordinate;//坐标显示QGraphicsLineItem *x_line, *y_line;//十字线double qcuisition_interval;//采样时间间隔 我这里采用分钟记数,所以一秒钟累加 1.0f / 60.0fdouble record_x_min, record_x_max;//X轴记录点//两条线段
QChart tec_1_2_temperature_chart;
QValueAxis tec_1_2_temperature_axisX, tec_1_2_temperature_axisY;//X轴和Y轴
QLineSeries line_tec_1_2_set_temperature[2], line_tec_1_2_current_temperature[2];//设置温度,实时温度
QString line_tec_1_2_set_temperature_name[2] = {"TEC1设置", "TEC2设置"};
QString line_tec_1_2_current_temperature_name[2] = {"TEC1实时", "TEC2实时"};
QPen line_tec_1_2_set_temperature_clocr[2] = {QColor(237, 28, 36), QColor(181, 206, 212)};
QPen line_tec_1_2_current_temperature_cloor[2] = {QColor(255, 127, 39), QColor(63, 72, 204)};
double tec_1_2_temperature_record_y_min = TEC_MIN_Y, tec_1_2_temperature_record_y_max = TEC_MAX_Y;//记录X,Y位置
double tec_1_2_temperature_count = 0;//记录当采集点

2 cpp文件

2.1 初始化函数

/**
* @brief 曲线图 初始化
* @param char图表类
* @param axisx:X轴
* @param x_name:x轴名字
* @param axisy:Y轴
* @param y_min:Y轴最小长度
* @param y_max:Y轴最大长度
* @param y_name:Y轴名字
* @retval None
*/
void interface_chart::Chart_Init(QChart &chart,QValueAxis &axisx, QString x_name,QValueAxis &axisy, int y_min, int y_max, QString y_name)
{int font_size = 11;QFont font("Microsoft YaHei", font_size);//微软雅黑chart.legend()->setFont(font);  // 设置字体及大小chart.setAnimationOptions(QChart::SeriesAnimations);//移动动画//设置坐标轴显示的范围axisx.setMin(0);axisx.setMax(MAX_X);axisy.setMin(y_min);axisy.setMax(y_max);//设置坐标轴上的格点axisx.setTickCount(X_LEN + 1);axisy.setTickCount(Y_LEN);//设置坐标轴字体大小axisx.setTitleFont(font);axisx.setLabelsFont(font);axisy.setTitleFont(font);axisy.setLabelsFont(font);//设置名字axisx.setTitleText(x_name);axisy.set

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/485575.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【时时三省】(C语言基础)结构体内存对齐

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 我们已经掌握了结构体的基本使用了。现在我们深入讨论一个问题&#xff1a;计算结构体的大小。 这也是一个特别热门的考点&#xff1a;结构体内存对齐 示例&#xff1a; 第一个s如果根据字…

云数据库 MongoDB

MongoDB 是一个基于文档的 NoSQL 数据库&#xff0c;它与传统的关系型数据库不同&#xff0c;采用的是灵活的文档结构&#xff08;类似 JSON 格式&#xff09;。MongoDB 是开源的&#xff0c;且高度可扩展&#xff0c;通常用于处理大量的非结构化或半结构化数据。 云数据库 Mon…

第一个 JSP 程序

一个简单的 JSP 程序&#xff1a; 使用 IDEA 开发工具新建一个 maven 项目&#xff0c;具体操作如图所示&#xff1a; 配置 Tomcat 服务器 项目结构如下图所示&#xff1a; 3. 修改 index.jsp 页面的代码&#xff1a; <% page language"java" contentType&q…

项目代码第2讲:从0实现LoginController.cs,UsersController.cs、User相关的后端接口对应的前端界面

一、User 1、使用数据注解设置主键和外键 设置主键&#xff1a;在User类的U_uid属性上使用[Key]注解。 设置外键&#xff1a;在Order类中&#xff0c;创建一个表示外键的属性&#xff08;例如UserU_uid&#xff09;&#xff0c;并使用[ForeignKey]注解指定它引用User类的哪个…

【NLP 9、实践 ① 五维随机向量交叉熵多分类】

目录 五维向量交叉熵多分类 规律&#xff1a; 实现&#xff1a; 1.设计模型 2.生成数据集 3.模型测试 4.模型训练 5.对训练的模型进行验证 调用模型 你的平静&#xff0c;是你最强的力量 —— 24.12.6 五维向量交叉熵多分类 规律&#xff1a; x是一个五维(索引)向量&#xff…

01-Chromedriver下载与配置(mac)

下载地址&#xff1a; 这里我用的最后一个&#xff0c;根据自己chrome浏览器选择相应的版本号即可 ChromeDriver官网下载地址&#xff1a;https://sites.google.com/chromium.org/driver/downloads ChromeDriver官网最新版下载地址&#xff1a;https://googlechromelabs.git…

Redis(上)

Redis 基础 什么是 Redis&#xff1f; Redis &#xff08;REmote DIctionary Server&#xff09;是一个基于 C 语言开发的开源 NoSQL 数据库&#xff08;BSD 许可&#xff09;。与传统数据库不同的是&#xff0c;Redis 的数据是保存在内存中的&#xff08;内存数据库&#xf…

JS学习(1)(基本概念与作用、与HTML、CSS区别)

目录 一、JavaScript是什么&#xff1f; &#xff08;1&#xff09;基本介绍 &#xff08;2&#xff09;简称&#xff1a;JS&#xff1f; 二、JavaScript的作用。 三、HTML、CSS、JS之间的关系。 &#xff08;1&#xff09;html、css。 &#xff08;2&#xff09;JavaScript。 …

使用AI工具Screenshot to Code将UI设计图翻译成代码

一、获取openAI apikey。 一般有两种方式&#xff0c;一种是到openAI官网注册账号&#xff0c;付费申请GPT4的apikey。另一种是某宝买代理。我这里采用第二种。 二、安装Screenshot to Code 1.到github下载源码。 2.启动&#xff0c;两种方式&#xff1a;源码启动和docker启动…

ETCD的封装和测试

etcd是存储键值数据的服务器 客户端通过长连接watch实时更新数据 场景&#xff1a; 当主机A给服务器存储 name&#xff1a; 小王 主机B从服务器中查name ,得到name-小王 当主机A更改name 小李 服务器实时通知主机B name 已经被更改成小李了。 应用&#xff1a;服务注册与发…

Github 2024-12-01 开源项目月报 Top20

根据Github Trendings的统计,本月(2024-12-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10TypeScript项目9Go项目2HTML项目1Shell项目1Jupyter Notebook项目1屏幕截图转代码应用 创建周期:114 天开发语言:TypeScript, Py…

李飞飞:Agent AI 多模态交互的前沿探索

发布于:2024 年 11 月 27 日 星期三 北京 #RAG #李飞飞 #Agent #多模态 #大模型 Agent AI在多模态交互方面展现出巨大潜力,通过整合各类技术,在游戏、机器人、医疗等领域广泛应用。如游戏中优化NPC行为,机器人领域实现多模态操作等。然而,其面临数据隐私、偏见、可解释性…

C语言期末考试——重点考点

目录 1.C语言的结构 2.三种循环结构 3.逻辑真假判断 4. printf函数 5. 强制类型转化 6. 多分支选择结构 7. 标识符的定义 8. 三目运算符 1.C语言的结构 选择结构、顺序结构、循环结构 2.三种循环结构 for、while、do-while 3.逻辑真假判断 C语言用0表示false,用非0(不…

ansible基础教程(下)

一、playbook 简介&#xff1a; playbook 是 ansible 用于配置&#xff0c;部署&#xff0c;和管理被控节点的剧本。 通过 playbook 的详细描述&#xff0c;执行其中的一系列 tasks &#xff0c;可以让远端主机达到预期的状态。 使用场景&#xff1a; 像执行shell命令与写…

mid360使用cartorapher进行3d建图导航

1. 添加urdf配置文件&#xff1a; 添加IMU配置关节点和laser关节点 <!-- imu livox --> <joint name"livox_frame_joint" type"fixed"> <parent link"base_link" /> <child link"livox_frame" /> <o…

聚合支付系统/官方个人免签系统/三方支付系统稳定安全高并发 附教程

聚合支付系统/官方个人免签系统/三方支付系统稳定安全高并发 附教程 系统采用FastAdmin框架独立全新开发&#xff0c;安全稳定,系统支持代理、商户、码商等业务逻辑。 针对最近一些JD&#xff0c;TB等业务定制&#xff0c;子账号业务逻辑API 非常详细&#xff0c;方便内置…

CV工程师专用键盘开源项目硬件分析

1、前言 作为一个电子发烧友&#xff0c;你是否有遇到过这样的问题呢。当我们去查看函数定义的时候&#xff0c;需要敲击鼠标右键之后选择go to definition。更高级一些&#xff0c;我们使用键盘的快捷键来查看定义&#xff0c;这时候可以想象一下&#xff0c;你左手按下ALT&a…

【Redis】深入解析Redis缓存机制:全面掌握缓存更新、穿透、雪崩与击穿的终极指南

文章目录 一、Redis缓存机制概述1.1 Redis缓存的基本原理1.2 常见的Redis缓存应用场景 二、缓存更新机制2.1 缓存更新的策略2.2 示例代码&#xff1a;主动更新缓存 三、缓存穿透3.1 缓存穿透的原因3.2 缓解缓存穿透的方法3.3 示例代码&#xff1a;使用布隆过滤器 四、缓存雪崩4…

ABAP - 系统集成之SAP的数据同步到OA(泛微E9)服务器数据库

需求背景 项目经理说每次OA下单都需要调用一次SAP的接口获取数据&#xff0c;导致效率太慢了&#xff0c;能否把SAP的数据保存到OA的数据库表里&#xff0c;这样OA可以直接从数据库表里获取数据效率快很多。思来想去&#xff0c;提供了两个方案。 在集群SAP节点下增加一个SQL S…

2023年华数杯数学建模A题隔热材料的结构优化控制研究解题全过程文档及程序

2023年华数杯全国大学生数学建模 A题 隔热材料的结构优化控制研究 原题再现&#xff1a; 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等高科技领域中有着广泛的应用。   目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;…