QChart的使用
条件 :需要在.Pro文件添加QT += charts
四个头文件的作用
#include <QChart> //类似于画笔
#include <QChartView> //类似于画布
#include <QLineSeries> // 类 Series 是用来添加数据的对象(可以理解为一个集合)
#include <QValueAxis>//用来自定义图表中的X,Y坐标轴
定义了五个对象
QChartView *chartView;
QChart *chart;
QLineSeries *lineSeries;
QValueAxis *axisX,*axisY;
代码如下
this->setCentralWidget(chartView);
lineSeries = new QLineSeries(chartView); //QLineSeries用来存放数据
lineSeries->setPen(QPen(Qt::blue,1,Qt::SolidLine));//设置画笔
//添加数据
lineSeries->append(0,6);
lineSeries->append(2,4);
lineSeries->append(4,2);
lineSeries->append(6,8);
lineSeries->append(10,12);
lineSeries->append(12,6);
lineSeries->append(14,18);
chart->addSeries(lineSeries);
chart->setAnimationOptions(QChart::SeriesAnimations);
axisX = new QValueAxis; //定义X轴
axisX->setRange(0, 20); //设置范围
axisX->setLabelFormat("%g"); //设置刻度的格式
axisX->setTitleText("X Axis"); //设置X轴的标题
axisX->setGridLineVisible(true); //设置是否显示网格线
axisX->setMinorTickCount(4); //设置小刻度线的数目
// axisX->setLabelsVisible(false); //设置刻度是否显示
axisY = new QValueAxis;
axisY->setRange(0, 20);
axisY->setTitleText("Y Axis");
axisY->setLabelFormat("%.2f");
axisY->setGridLineVisible(true);
chart->setAxisX(axisX, lineSeries);
chart->setAxisY(axisY, lineSeries);
chart->legend()->hide();
效果
QCustoPlot的使用
1 .只需要把qcustomplot.cpp和qcustomplot.h拷贝到工程目录下,然后把这两个文件引入工程项目即可,同时在.pro文件添加QT += widgets printsupport 2. 它继承于Widget,界面中的Widget类提升为QCustomPlot才能够绘图。
步骤
1.建立qt项目,添加qustomplot.h与qustomplot.cpp文件,并在pro工程 QT += widgets printsupport
2.从ui拖一个widget控件,并提升为QCustomPlot
3.建立QCustomPlot对象并操作
代码如下
QCustomPlot *p = ui->widget;
p->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); //可拖拽+可滚轮缩放
p->legend->setVisible(true); //显示图例
p->xAxis->setLabel(QStringLiteral("X轴文字")); //X轴文字显示
p->yAxis->setLabel(QStringLiteral("Y轴文字")); //Y轴文字显示
p->xAxis->setRange(0, 100); //当前X轴显示的范围
p->yAxis->setRange(0, 10); //当前Y轴显示的范围
p->addGraph(); //向绘图区域QCustomPlot添加一条曲线
p->graph(0)->setPen(QPen(Qt::red)); //绘制曲线0的画刷颜色为红色
//绘制的曲线轨迹
for (int i = 0; i<100; i++)
{
p->graph(0)->addData(i, i % 10);
}