一、实例编写环境
- 操作系统:Windows 10 企业版
- 开发工具:Visual Studio 2010 旗舰版
- 开发环境:Qt4.8.6,QtCharts5.14.1
- 编程语言:C++
二、本例涉及的内容
本实例主要讲解通过QtCharts绘制面积图表,涉及的QtCharts的主要类有如下内容:QLineSeries、QAreaSeries、QChart、QChartView。
QLineSeries:用于制作折线图,折线图的数据源类;
QAreaSQCharteries:用于制区域面积图,面积图数据源类;它是以线条数据为基础,边界之间用区域颜色着色;
QChart:Qt图表的主要图标API,用于在Qt二维绘图框架场景显示的控件;
QChartView:独立的图表控件,它是一个可以显示图表的独立控件;
3、实例效果
4、关键代码片段
主要代码片段如下:
//折线数据源//
QLineSeries *series0 = new QLineSeries();
QLineSeries *series1 = new QLineSeries();
*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);
//区域面积图数据源//
QAreaSeries *series = new QAreaSeries(series0, series1);
series->setName(QString::fromLocal8Bit("面积图"));
QPen pen(Qt::magenta);
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);
QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle(QString::fromLocal8Bit("简单的面积图实例"));
chart->createDefaultAxes();
chart->axes(Qt::Horizontal).first()->setRange(0, 20);
chart->axes(Qt::Vertical).first()->setRange(0, 10);
chart->setTheme(QChart::ChartThemeBlueIcy);
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
5、实例源码获取
完整的实例代码,请在在笔者的下载中心搜索下载(查找本博客同名标题资源进行下载)。如有任何发现任何问题或者疑问,可以留言或者联系作者进行反馈哦!源码下载链接点击下载。