Qt扫盲-QAreaSeries理论总结

QAreaSeries是Qt库中用于显示面积图的类,基于QLineSeries。要创建面积图,需要两个QLineSeries对象定义区域边界。文章详细介绍了创建QAreaSeries对象,填充数据,设置区域样式,将其与QChart关联以及在GUI窗口中展示的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太阳风暴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值