Qt QChart实现折线图的绘制 - 网站

Qt QChart实现折线图的绘制

分类:C语言 · 发布时间:2023-08-08 05:04 · 阅读:4331

QChart是常用的图表,这篇文章主要为大家详细介绍了Qt如何利用QChart实现折线图的绘制,文中的示例代码讲解详细,感兴趣的可以了解一下

前言

QChart  是常用的图表;我这里做了一个 default 和 custom

1.使用

Qt5.9及以上版本;

pro文件中添加QT += charts

.在使用QChart的各个控件之前,必须先声明一个命名空间。如:

QT_CHARTS_USE_NAMESPACE
QT_BEGIN_NAMESPACE

QChart和QChartView的关系:

QChart和QChartView的关系类似于QGraphicsScene和QGraphicsView的关系,QChart本身是用来存放需要展示的控件的类,而QChartView则是用于人眼识别观察的入口。

所有的更改都是在QChart上发生的,不过更改的结果是通过QChartView来进行展示的

2.效果如下

3.具体实现如下

mainwindow.h

#ifndef MAINWINDOW_H #define MAINWINDOW_H #include  #include  #include  #include  QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void on_pushButton_clicked(); void on_pushButton_2_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H 

mainwindow.cpp

#include "mainwindow.h" #include "ui_mainwindow.h" #pragma execution_character_set("utf-8") MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { QLineSeries *lineSeries = new QLineSeries();        //创建折线系列 QChartView *chartView = new QChartView(this); /*为系列里添加100个数据*/ for(quint8 i=0; i<100; i++) { lineSeries->append(i,qrand()%300); } lineSeries->setName("red line");                  //设置系列名称 QChart * mChart = new QChart();                          //创建图标对象 mChart->addSeries(lineSeries);                  //向图表中添加系列 mChart->createDefaultAxes();                       //创建默认的坐标,必须在addSeries之后调用 mChart->setTheme(QChart::ChartThemeDark);           //设置图标主题 mChart->setTitle("qrand");                       //设置图标名称 // mChart->legend()->hide();                          //隐藏图例,也就是不显示系列名称了 chartView->setChart(mChart);                    //向chartView中添加图标 chartView->resize(QSize(500,300));              //重新设置chartView的大小 chartView->setRenderHints(QPainter::Antialiasing);//消除边缘,看起来平滑一些 ui->horizontalLayout->addWidget(chartView);     //把chartView放到水平布局中(在ui中拖一个水平布局) } void MainWindow::on_pushButton_2_clicked() { QLineSeries *lineSeries = new QLineSeries();        //创建折线系列 QChartView *chartView = new QChartView(this); for(quint8 i=0; i<100; i++) { lineSeries->append(i,qrand()%300); } lineSeries->setName("red line"); QChart * mChart = new QChart(); mChart->addSeries(lineSeries); //mChart->createDefaultAxes(); QValueAxis *axisX = new QValueAxis; axisX->setRange(0, 300); //设置坐标轴范围 axisX->setTickCount(5); //主分隔个数 axisX->setMinorTickCount(2);//4 mChart->addAxis(axisX,Qt::AlignLeft ); //坐标轴添加到图表,并指定方向 lineSeries->attachAxis(axisX); //序列 series0 附加坐标轴 QValueAxis *axisY = new QValueAxis; axisY->setRange( 0,  100); axisY->setTickCount(10); axisY->setMinorTickCount(2);//4 mChart->addAxis(axisY,Qt::AlignBottom); lineSeries->attachAxis(axisY); mChart->setTheme(QChart::ChartThemeDark); lineSeries->setColor(Qt::red); mChart->setTitle("qrand"); chartView->setChart(mChart); chartView->resize(QSize(500,300)); chartView->setRenderHints(QPainter::Antialiasing); ui->horizontalLayout->addWidget(chartView); }

4.刷新QChart

//更新系列中的数据  注意:不需要将该系列从图表中移除 lineSeries->clear(); QList list; int count = cloud.points.size(); std::cout << "new point s count : " << count << "  " << std::endl; for (int i = 0; i replace(list); 

5.PCL 点排序

    //------------------------------排序---------------------------- std::sort(cloud.begin(), cloud.end(), [](pcl::PointXYZ a, pcl::PointXYZ b) {return a.z 

到此这篇关于Qt QChart实现折线图的绘制的文章就介绍到这了,更多相关Qt QChart折线图内容请搜索0133技术站以前的文章或继续浏览下面的相关文章希望大家以后多多支持0133技术站!

标签:
Qt QChart 折线图

相关文章

C/C++预处理浅析使用形式

预处理是指在进行编译的词法扫描和语法分析之前所作的工作。预处理指令指示在程序正式编译前就由编译器进行的操作,可放在程序中任何位置。处理完毕自动进入对源程序的编译。C/C++中的预处理主要包含三种:文件包含、宏定义、条件编译

C++中的字符串编码处理方法

这篇文章主要介绍了C++中的字符串编码处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

C++中的强制类型转换操作详解

C++中提供了四种强制类型转换技术:static_cast、dynamic_cast、reinterpret_cast和const_cast。这些技术能够在需要时将一种类型转换为另一种类型,但需要注意它们的适用条件和安全性。程序员需要根据具体情况选择合适的强制类型转换方式,以确保程序的正确性和可靠性

QT+OpenGL实现简单图形的绘制

这篇文章主要为大家详细介绍了如何利用QT和OpenGL实现简单图形的绘制,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下

C语言之结构体定义 typedef struct 用法详解和用法小结

这篇文章主要介绍了C语言的结构体定义typedef struct用法详解和用法小结,typedef是类型定义,typedef struct 是为了使用这个结构体方便,感兴趣的同学可以参考阅读

返回分类 返回首页