QtCharts目前已經能夠無償使用,並且使用很是方便、快捷,而且提供了各類類別的支持(例如:曲線圖,柱形圖,折線圖,餅圖等)。app
這裏講解qml端圖表顯示,C++端進行數據整合,並能實現實時數據刷新(該部分參考了StackOverflow上國外網友的經驗)。函數
首先,在pro中要添加charts,widgets,即ui
Qt += qml quick widgets charts設計
在main.cpp中,添加頭文件 #include <QApplication>( 注, pro中要先添加widgets,否則該頭文件下會顯示橫線,代表找不到),並在maincode
函數修改成下面的形式:blog
QCoreApplication app(argc,argv) //在5.0以上版本中默認是這樣實現的 修改成: QApplication app(argc,argv)
到這裏咱們就將基本的東西配置好了,下面分兩個部分講解如何實現實時刷新的圖表。get
一、qml界面實現;io
ChartView用於顯示一個圖表,能夠說至關於容器,在這個區域內咱們進行圖表繪畫,這裏能夠設定圖表的大小,背景顏色,風格等等,很少說。class
AbstractSeries是全部圖表類的基類,它的直接派生子類爲AbstractBarSeries, AreaSeries, BoxPlotSeries, CandlestickSeries, PieSeries, and XYSeries,import
經過XYSeries又能夠派生出LineSeries, ScatterSeries, and SplineSeries。
AbstractAxis是全部圖表軸的基類,派生子類爲BarCategoryAxis, CategoryAxis, DateTimeAxis, LogValueAxis, and ValueAxis。
界面設計相似以下:
import QtQuick 2.0 import QtCharts 2.2 ChartView { id: chartsview; width: 400 height: 300 theme: ChartView.ChartThemeBrownSand antialiasing: true ValueAxis{ id: axiasX; max: 1; min: 0; } ValueAxis{ id: axiasY; max: 1; min: 0; } LineSeries{ id: lineseries; axisX: axiasX; axisY: axiasY; } Component.onCompleted: { DataSource.setSeries(chartsview.series(0)); } }
注: 該文尚未結束,後續將繼續;