来来来,今天新学习到了一个好东西,就是图表的绘制,这玩意在一般的项目开发中的使用频率还是非常高滴,毕竟相对于数字来说,这个东西更能体现出数据的变化,主要是耐看啊!!!废话不多,我们直接上教程。
Qt实现图表绘制
1.绘制ui界面
创建项目我们就不多说了,说的太多了麻烦。
我是这样设计的,因为只是为了实践,所以没有考虑吧好看的因素。
一共是三个控件:1.lable2.button 3.Graphics View,老规矩,先将1,2水平布局,然后选中Widget对象后点击垂直布局
1.lable: 就是一个标签,用于显示我们的这个图表是干什么的,
2.button:转到槽,来控制保存图像
3.Graphics view:来显示我们的图表
2.编写代码
1.编写头文件
首先是头文件,毕竟我们要实现图表和绘制曲线和定时器随机数的生成。
1.这是.cpp的
#include "QChartView" // 包含QChartView类,用于显示图表
#include "QChart" // 包含QChart类,用于创建图表
#include "QValueAxis" // 包含QValueAxis类,用于创建值轴
#include "QSplineSeries" // 包含QSplineSeries类,用于创建曲线系列
#include "QTimer" // 包含QTimer头文件,用于定时器
#include <QRandomGenerator> // 用于生成随机数
#include "QMessageBox" // 包含QMessageBox类,用于显示消息框
2. 这是.h的
#include <QWidget>
#include <QChartView>
#include <QChart>
#include <QSplineSeries>
#include <QValueAxis>
#include <QTimer>
2.编写定时器
先在widget.h中定义我们的time
qreal time; // 保存时间轴上的时间
然后在widget.cpp中初始化并连接我们的槽,(这里的槽是用来更新我们图像显示的,我们直接在定时器的初始化这里连接了)
// 初始化定时器并连接到 updateChart 槽
QTimer *timer = new QTimer(this); // 创建定时器
connect(timer, &QTimer::timeout, this, &Widget::updateChart); // 连接定时器超时信号到槽函数
timer->start(1000); // 启动定时器,每隔1000毫秒(1秒)触发一次
3.编写图表和曲线的实现
1.初始化类成员变量
我们图表中有两个成员,一个是图表,一个是图表中的曲线
widget.h文件中声名一下:
QChart *chart; // 保存图表对象
QSplineSeries *splineSeries; // 保存曲线对象
widget.cpp中定义:
// 初始化类成员变量 chart 和 splineSeries
chart = new QChart(); // 创建图表对象