Qt圖形影象開發之曲線圖表模組QChart庫一個chart中顯示兩條曲線詳細方法與例項
阿新 • • 發佈:2020-03-12
首先要了解QChartView、QChart、QLineSeries、QValueAxis的實體之間的關係,例如一個QChartView中可以包含幾個QValueAxis?這些可參考 Qt圖形影象開發曲線圖表模組QChart庫基本用法、各個類之間的關係說明
每個chart可以包含多個QLineSeries資料系列,每個QLineSeries資料系列又包含了2個QValueAxis數值軸或QDateTimeAxis時間軸。
那麼這個chart中的多個數據系列,一起顯示在同一個chart中,會是什麼情形?
新建ui工程,並新增MainWindow私有變數:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QChartView> #include <QChart> #include <QLineSeries> #include <QValueAxis> QT_CHARTS_USE_NAMESPACE namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindow *ui; QChart *chart;//非必要(QCharView實體中自帶一個QChart實體) QLineSeries *series_sin,*series_cos; QValueAxis *axis_x_sin,*axis_y_sin,*axis_x_cos,*axis_y_cos; }; #endif // MAINWINDOW_H
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),ui(new Ui::MainWindow),chart(new QChart),//或者不用new,直接指向ui->graphicsView->chart()也行 series_sin(new QLineSeries),//sin曲線的資料點 series_cos(new QLineSeries),//cos曲線的資料點 axis_x_sin(new QValueAxis),//sin的X軸 axis_y_sin(new QValueAxis),//sin的Y軸 axis_x_cos(new QValueAxis),//cos的X軸 axis_y_cos(new QValueAxis)//cos的Y軸 { ui->setupUi(this); ui->graphicsView->setChart(chart);//view中顯示出chart for(float x = 0; x < 10; x += 0.1) { series_sin->append(x,sin(x)); } axis_x_sin->setRange(-5,25); axis_y_sin->setRange(-2,2); chart->addSeries(series_sin); /*功能是:新增軸,並把軸和資料系列連線。注意,這一行並不能用來給chart新增資料系列 新增資料系列,要用chart->addSeries*/ chart->setAxisX(axis_x_sin,series_sin); chart->setAxisY(axis_y_sin,series_sin); for(float x = 10; x < 20; x += 0.1) { series_cos->append(x,cos(x)); } axis_x_cos->setRange(5,25); axis_y_cos->setRange(-2,2); chart->addSeries(series_cos); chart->setAxisX(axis_x_cos,series_cos);//cos使用自己的X軸 chart->setAxisY(axis_y_cos,series_cos); // chart->setAxisX(axis_x_sin,series_cos);//cos共享sin曲線的X軸 // chart->setAxisY(axis_y_sin,series_cos); }
執行結果如下所示,我們發現,兩條曲線各自為政。
根據上面程式最後兩行的註釋,我們如果把這兩個QLineSeries資料系列,繫結到同一組XY軸上(也即,兩條曲線共享同一組XY軸),兩條曲線就能“真正”的顯示在同一個chart中了,如下所示。
本文介紹了Qt曲線圖表模組QChart庫一個chart中顯示兩條曲線詳細方法與例項,更多關於Qt曲線圖表模組QChart庫知識請檢視下面的相關連結