QLineSeries是一個繪制折線圖的類,使用也非常的簡單,先看看下面的例子:
1 #include <QtWidgets/QApplication>
2 #include <QtWidgets/QMainWindow>
3 #include <QtCharts/QChartView>
4 #include <QtCharts/QLineSeries>
5 #include <QtCharts/QAreaSeries>
6
7 QT_CHARTS_USE_NAMESPACE 8
9 int main(int argc, char *argv[]) 10 { 11 QApplication a(argc, argv); 12
13 QLineSeries *series = new QLineSeries(); 14 series->setPen(QPen(Qt::blue,1,Qt::SolidLine)); //設置畫筆 15 //series->setColor(QColor(0,0,255)); //設置顏色
16
17 *series << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) << QPointF(12, 6) 18 << QPointF(16, 7) << QPointF(18, 5); //添加數據
19
20 QChart *chart = new QChart(); 21 chart->addSeries(series); 22 chart->setTitle("Simple example"); 23 chart->createDefaultAxes(); //設置默認的坐標系,如果不設置程序是運行不了的
24 chart->axisX()->setRange(0, 20);//設置圖表坐標軸的范圍,可以不設置,自動調節的
25 chart->axisY()->setRange(0, 10); 26
27 QChartView *chartView = new QChartView(chart); 28 chartView->setRenderHint(QPainter::Antialiasing); //抗鋸齒渲染
29
30 QMainWindow window; 31 window.setCentralWidget(chartView); 32 window.resize(400, 300); 33 window.show(); 34
35 return a.exec(); 36 }
代碼很簡單,一看就知道在說啥,所以以下歸納和延伸幾點:
1. 使用QtCharts必須先聲明的它的命名空間QT_CHARTS_USE_NAMESPACE,當然也可以這樣聲明using namespace QT_CHARTS_NAMESPACE;
2. 往折線對象添加數據的時候,除了用<<添加,還可以用append()函數來添加,函數原型如下:
1 <span style="white-space:pre"> </span>void append(qreal x, qreal y); 2 <span style="white-space:pre"> </span>void append(const QPointF &point); 3 <span style="white-space:pre"> </span>void append(const QList<QPointF> &points);
從上面三個函數說明利用append()函數是比較的靈活,特別是利用QList容器去添加數據,可以一次性去添加數據。
3. QLineSeries可以管理已經存在的數據,主要通過下面幾個函數。
1 void insert(int index, const QPointF & point) //往指定位置插入一個點
2 void remove(const QPointF & point) //移除一個點,還有幾個重載函數沒有列出
3 void replace(const QPointF & oldPoint, const QPointF & newPoint) //替代某一個點
4. QChart是管理圖表里面各種對象的一個類,例如曲線 ,坐標軸,圖例等,它是在數據層面去管理,本身是不能可視化的,類似QGraphScence一樣,必須通過QChartView去做渲染顯示。
最后的效果圖: