欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt QChart實現(xiàn)折線圖的繪制

 更新時間:2023年04月26日 10:41:46   作者:戀戀西風(fēng)  
QChart是常用的圖表,這篇文章主要為大家詳細(xì)介紹了Qt如何利用QChart實現(xiàn)折線圖的繪制,文中的示例代碼講解詳細(xì),感興趣的可以了解一下

前言

QChart  是常用的圖表;我這里做了一個 default 和 custom

1.使用

Qt5.9及以上版本;

pro文件中添加QT += charts

.在使用QChart的各個控件之前,必須先聲明一個命名空間。如:

QT_CHARTS_USE_NAMESPACE
QT_BEGIN_NAMESPACE

QChart和QChartView的關(guān)系:

QChart和QChartView的關(guān)系類似于QGraphicsScene和QGraphicsView的關(guān)系,QChart本身是用來存放需要展示的控件的類,而QChartView則是用于人眼識別觀察的入口。

所有的更改都是在QChart上發(fā)生的,不過更改的結(jié)果是通過QChartView來進(jìn)行展示的

2.效果如下

3.具體實現(xiàn)如下

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
 
#include <QtCharts>
#include <QChartView>
#include <QSplineSeries>
 
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();        //創(chuàng)建折線系列
 
 
       QChartView *chartView = new QChartView(this);
 
 
       /*為系列里添加100個數(shù)據(jù)*/
 
       for(quint8 i=0; i<100; i++)
 
       {
 
           lineSeries->append(i,qrand()%300);
 
       }
 
 
       lineSeries->setName("red line");                  //設(shè)置系列名稱
 
 
       QChart * mChart = new QChart();                          //創(chuàng)建圖標(biāo)對象
 
 
       mChart->addSeries(lineSeries);                  //向圖表中添加系列
 
 
       mChart->createDefaultAxes();                       //創(chuàng)建默認(rèn)的坐標(biāo),必須在addSeries之后調(diào)用
 
       mChart->setTheme(QChart::ChartThemeDark);           //設(shè)置圖標(biāo)主題
 
 
       mChart->setTitle("qrand");                       //設(shè)置圖標(biāo)名稱
 
 
      // mChart->legend()->hide();                          //隱藏圖例,也就是不顯示系列名稱了
 
 
       chartView->setChart(mChart);                    //向chartView中添加圖標(biāo)
 
 
       chartView->resize(QSize(500,300));              //重新設(shè)置chartView的大小
 
 
       chartView->setRenderHints(QPainter::Antialiasing);//消除邊緣,看起來平滑一些
 
 
       ui->horizontalLayout->addWidget(chartView);     //把chartView放到水平布局中(在ui中拖一個水平布局)
}
 
void MainWindow::on_pushButton_2_clicked()
{
       QLineSeries *lineSeries = new QLineSeries();        //創(chuàng)建折線系列
       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); //設(shè)置坐標(biāo)軸范圍
       axisX->setTickCount(5); //主分隔個數(shù)
       axisX->setMinorTickCount(2);//4
       mChart->addAxis(axisX,Qt::AlignLeft ); //坐標(biāo)軸添加到圖表,并指定方向
       lineSeries->attachAxis(axisX); //序列 series0 附加坐標(biāo)軸
 
 
       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

//更新系列中的數(shù)據(jù)  注意:不需要將該系列從圖表中移除
    lineSeries->clear();
    QList<QPointF> list;
    int count = cloud.points.size();
    std::cout << "new point s count : " << count << "  " << std::endl;
 
 
    for (int i = 0; i < count; i+=10)
    {
        list << QPointF(cloud.points[i].z, cloud.points[i].y);
    }
    lineSeries->replace(list);

5.PCL 點排序

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

到此這篇關(guān)于Qt QChart實現(xiàn)折線圖的繪制的文章就介紹到這了,更多相關(guān)Qt QChart折線圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于C++讀入數(shù)字按位取出與進(jìn)制轉(zhuǎn)換問題(典型問題)

    關(guān)于C++讀入數(shù)字按位取出與進(jìn)制轉(zhuǎn)換問題(典型問題)

    這篇文章主要介紹了關(guān)于C++讀入數(shù)字按位取出與進(jìn)制轉(zhuǎn)換問題,是一個非常典型的問題,本文通過實例舉例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-02-02
  • C語言中數(shù)據(jù)結(jié)構(gòu)之鏈?zhǔn)交鶖?shù)排序

    C語言中數(shù)據(jù)結(jié)構(gòu)之鏈?zhǔn)交鶖?shù)排序

    這篇文章主要介紹了C語言中數(shù)據(jù)結(jié)構(gòu)之鏈?zhǔn)交鶖?shù)排序的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • C++實現(xiàn)圖形界面時鐘表盤代碼

    C++實現(xiàn)圖形界面時鐘表盤代碼

    這篇文章主要介紹了C++實現(xiàn)圖形界面時鐘表盤代碼,涉及坐標(biāo)函數(shù)的應(yīng)用及圖形界面程序設(shè)計,需要的朋友可以參考下
    2014-10-10
  • C語言函數(shù)傳遞數(shù)組和傳遞地址的區(qū)別你知道嗎

    C語言函數(shù)傳遞數(shù)組和傳遞地址的區(qū)別你知道嗎

    這篇文章主要介紹了C語言中數(shù)組作為函數(shù)的參數(shù)以及返回值的使用簡單入門,這里以一維數(shù)組作為基本條件進(jìn)行例子講解,需要的朋友可以參考下
    2021-09-09
  • C++可執(zhí)行文件絕對路徑值與VS安全檢查詳解

    C++可執(zhí)行文件絕對路徑值與VS安全檢查詳解

    這篇文章主要給大家介紹了關(guān)于C++可執(zhí)行文件絕對路徑值與VS安全檢查的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-01-01
  • C++超詳細(xì)梳理基礎(chǔ)知識

    C++超詳細(xì)梳理基礎(chǔ)知識

    這篇文章主要介紹了C++基礎(chǔ)概念,? 本次為C++的一個開篇,重點是更好的理解C++相對于其他編程語言的一個特性,之后會持續(xù)更新,本次專欄計劃是掌握C++的基礎(chǔ)語法以及常用特性,并且從細(xì)節(jié)上去理解,需要的朋友可以參考一下
    2022-06-06
  • C語言中楊氏矩陣與楊輝三角的實現(xiàn)方法

    C語言中楊氏矩陣與楊輝三角的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于C語言中楊氏矩陣與楊輝三角的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • C語言實現(xiàn)貪吃蛇游戲設(shè)計

    C語言實現(xiàn)貪吃蛇游戲設(shè)計

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)貪吃蛇游戲設(shè)計,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C語言實現(xiàn)計算雙色球的中獎率

    C語言實現(xiàn)計算雙色球的中獎率

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實現(xiàn)計算雙色球的中獎率,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12
  • C++傳值、傳址、傳引用的區(qū)別和選擇小結(jié)

    C++傳值、傳址、傳引用的區(qū)別和選擇小結(jié)

    參數(shù)傳遞有傳值、傳址和傳引用這三種,本文主要介紹了C++傳值、傳址、傳引用的區(qū)別和選擇小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-07-07

最新評論