QChart与QCustomPlot简单运用

QChart的使用

条件 :需要在.Pro文件添加QT += charts

四个头文件的作用
#include    //类似于画笔
#include    //类似于画布
#include   // 类 Series 是用来添加数据的对象(可以理解为一个集合)
#include //用来自定义图表中的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();
效果

QChart与QCustomPlot简单运用_第1张图片

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);
}
效果

QChart与QCustomPlot简单运用_第2张图片

你可能感兴趣的:(QT学习)