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)); } }
注: 该文尚未结束,后续将继续;