您的位置:首页 > 房产 > 建筑 > Qt QChart 曲线图表操作

Qt QChart 曲线图表操作

2024/10/5 18:32:33 来源:https://blog.csdn.net/weixin_50873490/article/details/140348134  浏览:    关键词:Qt QChart 曲线图表操作

学习目标:QChart 曲线图表操作

学习内容

QT中的QChart类提供了一个功能强大的图表绘制框架,可以根据需求方便高效地绘制各种类型的图表,主要特点如下:

  1. 支持多种常见图表类型,如线图、条形图、饼图、散点图等各种类型。开发者只需要选择合适的图表类和数据即可绘制不同图表。

  2. 采用了MVC架构模式,QChart作为模型,使用QChartView作为视图进行图表渲染输出。开发者可以方便地在界面上添加和管理多个图表。

  3. 提供了丰富的图表元素类,支持设置图表标题、坐标轴、图例、数据标签等元素。可以灵活控制图表各区域元素。

  4. 支持多种动画效果,包括图表区域和数据点的淡入淡出效果,可自定义动画参数实现丰富的交互效果。

  5. 内置了常见的坐标轴类型,同时支持自定义坐标轴格式。开发者不需要关心坐标数值的转换计算工作。

  6. 使用起来接口清晰简洁,支持C++和QML两种开发模式,重用性很强。

  7. 性能也很好,绘制成千上万个数据点依然流畅快速。常用于数据量大的实时图表等场景。

总之,QChart提供了一套专业的图表绘制解决方案。对初学图表开发的同学来说,使用起来门槛较低,是一套不错的选择。对一些复杂图表也有很好的扩展能力支持。

使用之前需要在qmake.pro中加入

qmake.por文件加入
QT       += core gui
QT +=charts

实现项目

基于代码实现QChart 曲线程序

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtCharts>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//创建视图对象QChartView *chartview =new QChartView(this);setCentralWidget(chartview);//创建图表QChart* chart =new QChart();chart->setTitle("图标测试-sincos");chartview->setChart(chart);//创建曲线QLineSeries* s1=new QLineSeries;QLineSeries* s2=new QLineSeries;s1->setName("Sin");s2->setName("Cos");chart->addSeries(s1);chart->addSeries(s2);//赋值qreal t=0,y1,y2,iv=0.1;for (int i=0;i<100;i++) {y1=qSin(t);s1->append(t,y1);y2=qCos(t);s2->append(t,y2);t=t+iv;}//创建坐标轴QValueAxis* ax=new QValueAxis;ax->setRange(0,10);ax->setTitleText("times(secs)");QValueAxis* ay=new QValueAxis;ay->setRange(-2,2);ay->setTitleText("values");chart->setAxisX(ax,s1);chart->setAxisY(ay,s1);chart->setAxisX(ax,s2);chart->setAxisY(ay,s2);}MainWindow::~MainWindow()
{delete ui;
}

基于gui界面制作QChart 曲线程序

qmake.por文件加入
QT       += core gui
QT +=charts

 选择GRaphicsView,右击选择提升

核心代码

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QSplineSeries *s1=new QSplineSeries(); // 创建曲线对象s1->append(0,5);s1->append(1,3);s1->append(2,5);s1->append(3,9);s1->append(4,6);s1->append(5,16);s1->append(6,10);s1->append(7,12);s1->append(8,17);s1->append(9,19);QChart *ct=ui->chartview->chart();ct->legend()->hide(); // 隐藏图表比例ct->addSeries(s1);ct->setTitle("曲线图表标题--自定义");ct->createDefaultAxes();ct->axes(Qt::Vertical).first()->setRange(0,20); // 设置y轴的范围}Widget::~Widget()
{delete ui;
}

 

 

总结

总的来说, QChart 是 Qt Charts 模块中非常强大和灵活的图表组件,可以帮助开发者快速创建各种类型的图表,并提供丰富的定制选项。

 最后附上源代码链接
对您有帮助的话,帮忙点个star

Qt demo: 学习qt过程 (gitee.com)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com