目录
简述
QtCharts模块是一组易于使用的图表组件,它基于Qt的GraphicsView架构,其核心组件是QChartView和QChart。
1、QChartView的父类是QGraphicsView,就是GraphicsView架构中的视图组件,所以,QChat是用于显示图表的视图。
2、QChart是从QGraphicsItem继承而来的,所有,QChart是一种图形项。
继承关系: QGraphicsItem -》 QGraphicsObject -》 QGraphicsWidget -》 QChart -》 QPolarChart
使用必须:
pro文件中添加:
QT += charts
头文件添加:
#include <QtCharts>
using namespace QtCharts;
图表的类型主要就是由序列的类型决定的,常见的图表类型有折线图,柱状图,饼图,散点图等,下面是各种图表的样图:
折线图
效果图:
代码实现:
void Widget::CreateChart()
{
//创建图表
QChartView* chartView = new QChartView(this);
chartView->resize(this->size());
QChart* chart = new QChart();
chart->setTitle(QStringLiteral("测试折线"));
chartView->setChart(chart);//视图设置图表
//创建折线序列
QLineSeries* series0 = new QLineSeries();
QLineSeries* series1 = new QLineSeries();
series0->setName(QStringLiteral("折线1"));
series1->setName(QStringLiteral("折线2"));
chart->addSeries(series0); //将折线序列添加到图表
chart->addSeries(series1);
//序列添加数值
series0->append(0.0, -2.0);
series0->append(2.5, 1.0);
series0->append(5.0, -1.0);
series0->append(7.5, 1.0);
series0->append(10.0, -1.0);
series1->append(0.0, -1.0);
series1->append(2.5, 2.0);
series1->append(5.0, 0.0);
series1->append(7.5, 2.0);
series1->append(10.0, 0.0);
//创建坐标轴
QValueAxis* axisX = new QValueAxis();
axisX->setRange(0, 10);
axisX->setTitleText("time(secs)");
QValueAxis* axisY = new QValueAxis();
axisY->setRange(-2, 2);
axisY->setTitleText("value");
chart->setAxisX(axisX, series0);
chart->setAxisY(axisY, series0);
chart->setAxisX(axisX, series1);
chart->setAxisY(axisY, series1);
}