QT中使用图表之QChart绘制X轴为日期时间轴的折线图
显然X轴是日期时间轴的话,那么我们使用的轴类就得是QDateTimeAxis
QChart中日期时间轴的精度是毫秒
因此图表里面的数据的x值需要是一个毫秒数,才能显示出来

---------------------------------------------------------------------------------------------------------------------------------
步骤和画折线图一模一样,只不过使用的轴是日期时间轴QDateTimeAxis
1、创建图表视图
QChartView* view=new QChartView(this);
2、创建图表
QChart* chart=new QChart();
3、将图表设置给图表视图
view->setChart(chart);
4、构建x轴-日期时间轴,设置轴的属性,并将轴添加到图表中
在设置轴的范围时,传入的是2个QDateTime
QDateTimeAxis * axisX = new QDateTimeAxis(this);
axisX -> setTitleText("时间轴"); //设置轴的标题
axisX -> setRange(QDateTime(QDate(2000, 01, 01), QTime(0, 0, 0)),QDateTime(QDate(2000, 12, 31), QTime(0, 0, 0))); //设置时间轴的范围,参数是两个时期时间QDateTime
axisX -> setTickCount(13); //设置刻度个数
axisX -> setFormat("MM月dd日"); //设置刻度值的格式,和格式化时间字符串一样
axisX -> setLabelsAngle(45);
chart -> addAxis(axisX, Qt::AlignBottom); //添加轴
5、构建y轴-数值轴,设置轴的属性,并将轴添加到图表中
QValueAxis * axisY = new QValueAxis(this);
axisY -> setRange(1000, 2000);
axisY -> setTickCount(11);
axisY -> setTitleText("Y轴");
chart -> addAxis(axisY, Qt::AlignLeft);
6、构建图标里的系列(具体的图),将系列添加到图表中
在追加数据点时,x轴的是需要的是一个毫秒数,才能显示出来
QLineSeries * line = new QLineSeries(this);
line -> setName("时间轴"); //设置图例文本
//要调用毫米精度的这个函数toMSecsSinceEpoch()转成时间戳,否则显示不出来
line -> append(QDateTime(QDate(2000, 01, 01), QTime(0, 0, 0)).toMSecsSinceEpoch(), 1200);
line -> append(QDateTime(QDate(2000, 02, 01), QTime(0, 0, 0)).toMSecsSinceEpoch(), 1400);
line -> append(QDateTime(QDate(2000, 03, 01), QTime(0, 0, 0)).toMSecsSinceEpoch(), 1100);
line -> append(QDateTime(QDate(2000, 04, 01), QTime(0, 0, 0)).toMSecsSinceEpoch(), 1600);
line -> append(QDateTime(QDate(2000, 05, 01), QTime(0, 0, 0)).toMSecsSinceEpoch(), 1300);
chart -> addSeries(line);
7、将轴附加到系列,是点显示在正确的位置上
line->attachAxis(axisX);
line->attachAxis(axisY);
完整代码
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QtCharts>
#include<QHBoxLayout>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr) : QWidget(parent){resize(800,600);QHBoxLayout* h_box=new QHBoxLayout(this);DrawLineOfTime();}~Widget()=default;//绘制横坐标为时间的折线图void DrawLineOfTime(){//1、创建图表视图QChartView* view=new QChartView(this);this->layout()->addWidget(view);//2.创建图表QChart* chart=new QChart();//3.将图表设置给图表视图view->setChart(chart);//设置标题chart->setTitle("时间图");chart->legend()->show();//显示或者隐藏图例(默认显示)//4.构建x轴-日期时间轴QDateTimeAxis* axisX=new QDateTimeAxis(this);axisX->setTitleText("时间轴");//设置轴的标题axisX->setRange(QDateTime(QDate(2000,01,01),QTime(0,0,0)),QDateTime(QDate(2000,12,31),QTime(0,0,0)));//设置时间轴的范围,参数是两个时期时间QDateTimeaxisX->setTickCount(13);//设置刻度个数axisX->setFormat("MM月dd日");//设置刻度值的格式,和格式化时间字符串一样axisX->setLabelsAngle(45);chart->addAxis(axisX,Qt::AlignBottom);//添加轴//5.构建y轴-数值轴QValueAxis* axisY=new QValueAxis(this);axisY->setRange(1000,2000);axisY->setTickCount(11);axisY->setTitleText("Y轴");chart->addAxis(axisY,Qt::AlignLeft);//6.构建折线系列QLineSeries* line=new QLineSeries(this);line->setName("时间轴");//设置图例文本//要调用毫米精度的这个函数toMSecsSinceEpoch()转成时间戳,否则显示不出来line->append(QDateTime(QDate(2000,01,01),QTime(0,0,0)).toMSecsSinceEpoch(),1200);line->append(QDateTime(QDate(2000,02,01),QTime(0,0,0)).toMSecsSinceEpoch(),1400);line->append(QDateTime(QDate(2000,03,01),QTime(0,0,0)).toMSecsSinceEpoch(),1100);line->append(QDateTime(QDate(2000,04,01),QTime(0,0,0)).toMSecsSinceEpoch(),1600);line->append(QDateTime(QDate(2000,05,01),QTime(0,0,0)).toMSecsSinceEpoch(),1300);chart->addSeries(line);//7、将xy轴附加到折线line->attachAxis(axisX);line->attachAxis(axisY);}};
#endif // WIDGET_H
相关文章:
QT中使用图表之QChart绘制X轴为日期时间轴的折线图
显然X轴是日期时间轴的话,那么我们使用的轴类就得是QDateTimeAxis QChart中日期时间轴的精度是毫秒 因此图表里面的数据的x值需要是一个毫秒数,才能显示出来 --------------------------------------------------------------------------------------…...
【传知代码】短期电力负荷(论文复现)
🍑个人主页:Jupiter. 🚀 所属专栏:传知代码 欢迎大家点赞收藏评论😊 目录 备注前言介绍问题背景复现:一. 多维特征提取的提取框架:二. 论文中进行性能测试的MultiTag2Vec-STLF模型:三…...
ubuntu20.04 加固方案-设置重复登录失败后锁定时间限制
一、编辑PAM配置文件 打开终端。 使用文本编辑器(如vim)编辑/etc/pam.d/common-auth文件。 sudo vim /etc/pam.d/common-auth 二、添加配置参数 在打开的配置文件中,添加或修改以下参数: auth required pam_tally2.so deny5 un…...
【综合算法学习】(第十三篇)
目录 解数独(hard) 题目解析 讲解算法原理 编写代码 单词搜索(medium) 题目解析 解析算法原理 编写代码 解数独(hard) 题目解析 1.题目链接:. - 力扣(LeetCode)…...
Web3 Key Talking #4|Sui有何不同?及其发展路线图
活动时间: 2024 年 10 月 31 日(周四)20:00–21:00(UTC8) 会议链接: 腾讯会议 会议 ID :429–339–777 主持:Sanzhisanzhichazi1 嘉宾:uvdwangtxxl,Sui …...
Axios 请求超时设置无效的问题及解决方案
文章目录 Axios 请求超时设置无效的问题及解决方案1. 引言2. 理解 Axios 的超时机制2.1 Axios 超时的工作原理2.2 超时错误的处理 3. Axios 请求超时设置无效的常见原因3.1 配置错误或遗漏3.2 超时发生在建立连接之前3.3 使用了不支持的传输协议3.4 代理服务器或中间件干扰3.5 …...
数据结构+算法
一、数据结构 1、线性结构 数组: 访问:O(1)访问特定位置的元素;插入:O(n)最坏的情况发生在插入发生在数组的首部并需要移动所有元素时;删除:O(n)最坏的情况发生在删除数组的开头发生并需要移动第一元素后…...
利用ExcelJS封装一个excel表格的导出
ExcelJS 操作和写入Excel 文件。 直接上代码,js部分: exportFn.js import ExcelJS from exceljs; import { saveAs } from file-saver;export function exportExcleUtils(tHeader, filterVal, listData, fileName) {//设置工作簿属性const workbook ne…...
AI 原生时代,更要上云:百度智能云云原生创新实践
本文整理自百度云智峰会 2024 —— 云原生论坛的同名演讲。 我今天分享的主题,是谈谈在云计算和 AI 技术快速发展和深入落地的背景下,百度智能云在云原生的基础设施产品和技术层面做的一些创新实践。 毋庸置疑,过去十几年云计算和 AI 技术是…...
C语言程序编译运行
程序功能:使用 printf() 输出 “Hello, World!”。 C语言源程序: #include <stdio.h> int main() {// printf() 中字符串需要引号printf("Hello, World!");return 0; }编译过程: vim hello.c gcc hello.c -o hello ./hell…...
视频点播系统扩展示例
更多的前端页面(如视频详情页、用户注册页等)。更复杂的业务逻辑(如视频评论、搜索功能等)。安全性和权限管理(如用户角色管理、权限控制等)。其他技术细节(如文件上传、分页查询等)…...
echo $? —— Linux 中的退出状态码详解
在 Linux 系统中,echo $? 是一个非常重要的命令,用于显示上一条命令的退出状态码。这个小小的符号组合可以帮助我们判断命令是否成功执行,同时也为编写自动化脚本提供了基础支持。本文将详细介绍 echo $? 的用法及其在实际开发中的应用。 …...
heic格式转化jpg最简单方法?快来学习这几种简单的转换方法!
heic格式转化jpg最简单方法?在当今的数字图像处理领域,HEIC格式以其卓越的压缩效率和高质量图像表现,正逐渐崭露头角并受到业界的深切关注,HEIC格式凭借先进的压缩技术,成功地在保持图像清晰度的同时,大幅度…...
力扣(leetcode)每日一题 3259 超级饮料的最大强化能量|动态规划
3259. 超级饮料的最大强化能量 题干 来自未来的体育科学家给你两个整数数组 energyDrinkA 和 energyDrinkB,数组长度都等于 n。这两个数组分别代表 A、B 两种不同能量饮料每小时所能提供的强化能量。 你需要每小时饮用一种能量饮料来 最大化 你的总强化能量。然而…...
Webserver(2.7)内存映射
目录 内存映射内存映射相关系统调用内存映射的注意事项如果对mmap的返回值(ptr)做操作,释放内存(munmap)是否能够成功?如果open时O_RDONLY,mmap时prot参数指定PROT_READ | PROT_WRITE会怎样?如果文件偏移量…...
vue3父子组件传值,子组件暴漏方法
1.父传子 defineProps 父组件直接通过属性绑定的方式给子组件绑定数据,子组件通过defineProps接收函数接收 其中v-model是完成事件绑定和事件监听的语法糖。v-model算是v-bind和v-on的简洁写法,等价于 <c-input ref"inputRef" :modelValue…...
Linux_04 Linux常用命令——tar
一、命令格式 tar [选项] [归档文件] [要处理的文件或目录]1、选项 c创建归档文件x解压缩归档文件z使用gzipj使用bzip2v处理过程显示信息f指定归档文件名称 2、归档文件-可指定目录及文件名 /home/wang.tar.gz 3、要处理的文件或目录 /home/study1/wang 二、常见命令 t…...
Java项目实战II基于Java+Spring Boot+MySQL的编程训练系统(源码+数据库+文档)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当今数字…...
Rust:文档注释 //! 和 ///
在 Rust 编程语言中,//! 是一种特殊的文档注释(documentation comment)。它用于为整个模块、结构体、枚举、函数或其他项提供文档说明。与单行注释 // 和多行注释 /* ... */ 不同,//! 和 ///(用于紧跟在项之前的文档注…...
练习LabVIEW第二十七题
学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第二十七题: 创建一个VI程序模拟温度测量。假设传感器输出电压与温度成正比。例如,当温度为70F时&…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
