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去做渲染显示。
最后的效果图: