QtCharts_折线图QLineSeries

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.  void append(qreal x, qreal y);    

2.  void append(const QPointF &point);    

3.  void append(const QList<QPointF> &points);   

从上面三个函数说明利用append()函数是比较的灵活,特别是利用QList容器去添加数据,可以一次性去添加数据。 
3. QLineSeries
可以管理已经存在的数据,主要通过下面几个函数。

void insert(int index, const QPointF &point) //
往指定位置插入一个点
void remove(const QPointF & point) //
移除一个点,还有几个重载函数没有列出
void replace(const QPointF & oldPoint, constQPointF & newPoint) //
替代某一个点

4. QChart
是管理图表里面各种对象的一个类,例如曲线 ,坐标轴,图例等,它是在数据层面去管理,本身是不能可视化的,类似QGraphScence一样,必须通过QChartView去做渲染显示。 

 

最后的效果图:

QtCharts_折线图QLineSeries