Qt扫盲-QAreaSeries理论总结

一、概述

QAreaSeries类以面积图的形式显示数据。QAreaSeries用于显示定量数据。它基于QLineSeries 类,边界线条之间的区域用颜色强调。由于QAreaSeries是基于直线序列的,所以QAreaSeries构造函数需要两个个QLineSeries实例,它定义了区域的上边界。面积图默认以图形区域的底部为下边界绘制。下边界可以用另一条线指定,而不是图形区域的底部。在这种情况下,QAreaSeries应该用两个QLineSeries实例初始化。

  • 注意:在下边界的值大于上边界的值的情况下,术语上边界和下边界可能会产生误导。重点是这两条边界线之间的区域将被填充。

在这里插入图片描述

二、使用

1. 创建QAreaSeries 对象

为了创建面积图,我们需要两个QLineSeries实例。它们将定义区域的上下边界。

QLineSeries *series0 = new QLineSeries();
QLineSeries *series1 = new QLineSeries();

2. 填充数据

我们向两个序列都添加数据,并使用stream操作符。

*series0 << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) << QPointF(12, 6)
   << QPointF(16, 7) << QPointF(18, 5);
   
*series1 << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3) << QPointF(8, 2) << QPointF(12, 3)
   << QPointF(16, 4) << QPointF(18, 3);

3. 设置区域

现在我们使用两个line series对象创建一个QAreaSeries实例。我们设置自定义渐变填充和轮廓的宽度。

QAreaSeries *series = new QAreaSeries(series0, series1);
series->setName("Batman");
QPen pen(0x059605);
pen.setWidth(3);
series->setPen(pen);

QLinearGradient gradient(QPointF(0, 0), QPointF(0, 1));
gradient.setColorAt(0.0, 0x3cc63c);
gradient.setColorAt(1.0, 0x26f626);
gradient.setCoordinateMode(QGradient::ObjectBoundingMode);
series->setBrush(gradient);

4. 将面积图 与绘图设备关联

最后,我们创建了QChartView实例,设置了标题,设置了抗锯齿,并添加了区域序列。我们还创建了默认坐标轴并在它们上指定范围。

QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("Simple areachart example");
chart->createDefaultAxes();
chart->axes(Qt::Horizontal).first()->setRange(0, 20);
chart->axes(Qt::Vertical).first()->setRange(0, 10);

5. 将绘图设备与 GUI窗口关联

图表已经准备好了。我们只需要在 QWidget 对象上把这个 chartView 添加进去就好啦。

QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);

猜你喜欢

转载自blog.csdn.net/qq_43680827/article/details/130664051
今日推荐