1. 程式人生 > 程式設計 >Qt圖形影象開發曲線圖表模組QChart庫基本用法、各個類之間的關係說明

Qt圖形影象開發曲線圖表模組QChart庫基本用法、各個類之間的關係說明

如何編譯安裝QChart請檢視下面文章

Qt圖形影象開發之曲線圖表庫QtChart編譯安裝詳細方法與使用例項

使用Qt曲線圖表模組Chart庫首先要注意3點:

(1)在.pro檔案中新增:QT += charts

(2)用到QChart的檔案中新增:QT_CHARTS_USE_NAMESPACE,或者:using namespace QtCharts;

在ui介面中拖入一個graphicsView控制元件,然後右擊提升為QChartView類,寫提升為的類:QtCharts::QChartView,標頭檔案寫:qchartview.h

(3)別忘了在用到QChartView的檔案中新增#include <QChartView>

如果編譯報錯,請依次執行:清除->執行qmake->構建

QChart的兩種顯示方法:(本質上就是同一種方法)

(1)QChart必須顯示在widget上,更確切地說,是必須把它顯示在QGraphicView控制元件中,眾所周知,QT的ui控制元件都可以作為獨立視窗直接顯示,所以這就是方法1。

(2)把QChart顯示在ui介面的QGraphicView控制元件中。

PS:把QChart顯示在QGraphicView控制元件中,程式略顯繁瑣,QT早就為我們封裝好了一個ui控制元件類QtCharts::QChartView,它繼承了QGraphicView。這就是上文提到的把QGraphicView提升成了QChartView。用QChartView來顯示QChart還是很方便的。

用QGraphicView來顯示QChart較為繁瑣,下面來對比一下,分別用QGraphicView和QChartView來顯示QChart,程式碼量的區別:

(1)用QGraphicView來顯示,需要藉助QGraphicsScene類。具體地說就是,QGraphicView在最底層,QGraphicsScene在中間,QChart在最外層。

QGraphicsScene scene;//場景(中間層)
QGraphicsView view(&scene);//檢視(最底層)
view.setRenderHint(QPainter::Antialiasing);//設定檢視抗鋸齒
view.setSceneRect(0,630,280);//設定檢視大小
 
QLineSeries *lineseries = new QLineSeries();//圖表的資料集
lineseries->append(0,5);//append和<<功能差不多
*lineseries << QPointF(13,5) << QPointF(17,6) << QPointF(20,2);
 
QChart *lineChart = new QChart();//圖表(最頂層)
lineChart->addSeries(lineseries); // 將 資料集 新增至圖表中
 
scene.addItem(lineChart);//把圖示新增到場景中(一個場景中允許新增多個圖表)
view.show();//檢視顯示

(2)用QChartView來顯示QChart較為方便

QLineSeries *lineseries = new QLineSeries();//圖表的資料集
lineseries->append(0,2);
 
QChart *lineChart = new QChart();//圖表(最頂層)
lineChart->addSeries(lineseries); // 將 資料集 新增至圖表中
 
QChartView *chartView = new QChartView(chart);//QChartView 可以一步到位直接顯示QChart
chartView->setRenderHint(QPainter::Antialiasing);//繼承來的抗鋸齒方法
chartView->resize(400,300);
chartView->show();//本示例程式碼,把該控制元件作為視窗直接顯示出來。
//其實,也可以把QChartView的父控制元件設定為主UI,這樣就能把QChartView顯示在主窗體中了

最後再來捋一下各個類之間的層次關係。下圖中,大括號“{”代表左邊實體包含右邊實體,下箭頭↓↓↓↓代表繼承關係

Qt圖形影象開發曲線圖表模組QChart庫基本用法、各個類之間的關係說明

本文先簡單介紹了Qt曲線圖表模組QChart庫基本用法、各個類之間的關係說明,詳細介紹就檢視下面的相關連結