1、在工程中加入qcustomplot.h和qcustomplot.cpp文件。
2、创建widget窗口,并将其提升为qcustomplot并全局包含。
3、定义一个初始化曲线函数init
//创建曲线
QCPGraph * graph = ui.widget–>addGraph();
//设置颜色
graph–>setPen(QPen(QColor(110,255,40)));
//设置x轴的区间
ui. widget–>xAxis–>setRang(0, 10);
//设置可以拖拽和放大缩小
ui.widget–>setInteraction(QCP::iRangeDrag, true):
ui.widget–>axisRect()–>setRangedrag(Qt: : Horizontal |Qt::Vertical ):
//设置图例并旋转90
graph–>setName(QString: : fromLocal8bit(”图例”);
ui.widget–>yAxis–>setTickLabelRotation
(90);
//设置x轴名称
ui.widget–>xAxis–>setLabel(QString: : fromLocal8bit(”某某信息等等”);
//设置图例
graph–>setName(QString : : fromLocal8bit
("速度"));
//实施传数并绘制曲线
ui.widget–>graph(0)–>addData(x1. data, x2. data);
if(time>10)
{
//x轴时间大于10后,动态显示近10s的曲线
ui. widget –>xAxis–>setRang(time-7, 10 Qt: : QlienLeft);
}
ui. widget–>yAxis–>setRang(y1. data, y2. data);
//刷新曲线
ui. widget –>replot();
//清空曲线
void clearline()
{
//循环清空所有画布
while(ui. widget–>graphcount() ≠0)
{
ui. widget –>remove Graph();
}
//显示状态设置为不可见
ui. widget–> legend–> setVisible(false);
ui. widget –>replot();
}
//根据复选框来显示对应不同的曲线(使用一个槽函数)
void slot_checkBox_clicked(bool checked)
{
QCheckBox * pqCheckBox = qobject_cast<QCheckBox *>(sender);
if(NULL == pqCheckBox)
return;
//点击a显示a曲线
if(pqCheckBox == ui. checkBox_A)
{ui. widget –>graph(0) –>setVisible(true);}
//点击b显示b曲线
if(pqCheckBox == ui. checkBox_B)
{ui. widget –>graph(1) –>setVisible(true);}
//刷新曲线
ui. widget –>replot();
}
整理思路就是这样,希望对大家有帮助!