1. 程式人生 > 程式設計 >Qt圖形影象開發之曲線圖表模組QChart庫一個chart中顯示兩條曲線詳細方法與例項

Qt圖形影象開發之曲線圖表模組QChart庫一個chart中顯示兩條曲線詳細方法與例項

首先要了解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);
}

執行結果如下所示,我們發現,兩條曲線各自為政。

Qt圖形影象開發之曲線圖表模組QChart庫一個chart中顯示兩條曲線詳細方法與例項

根據上面程式最後兩行的註釋,我們如果把這兩個QLineSeries資料系列,繫結到同一組XY軸上(也即,兩條曲線共享同一組XY軸),兩條曲線就能“真正”的顯示在同一個chart中了,如下所示。

Qt圖形影象開發之曲線圖表模組QChart庫一個chart中顯示兩條曲線詳細方法與例項

本文介紹了Qt曲線圖表模組QChart庫一個chart中顯示兩條曲線詳細方法與例項,更多關於Qt曲線圖表模組QChart庫知識請檢視下面的相關連結