QT动态波形显示
1.在QT界面内添加Widget控件
2.下载qcustomplot文件
把qcustomplot.cpp和qcustomplot.h添加入工程中。
3.把Widget控件提升为QCustomPlot
4.以下代码实现动态显示两条y=x的直线
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(slot_timeout()));
timer->start(1000);
ui->widget->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectAxes |
QCP::iSelectLegend | QCP::iSelectPlottables);
//设定右上角图形标注可见
ui->widget->legend->setVisible(true);
//设定右上角图形标注的字体
ui->widget->legend->setFont(QFont("Helvetica", 9));
//添加图形
ui->widget->addGraph();
//设置画笔
ui->widget->graph(0)->setPen(QPen(Qt::blue));
//设置画刷,曲线和X轴围成面积的颜色
// ui->widget->graph(0)->setBrush(QBrush(QColor(255,255,0)));
//设置右上角图形标注名称
ui->widget->graph(0)->setName("直线1");
//添加图形
ui->widget->addGraph();
//设置画笔
ui->widget->graph(1)->setPen(QPen(Qt::red));
//设置画刷,曲线和X轴围成面积的颜色
//ui->widget->graph(1)->setBrush(QBrush(QColor(0,255,0)));
//设置右上角图形标注名称
ui->widget->graph(1)->setName("直线2");
//设置X轴文字标注
ui->widget->xAxis->setLabel("x");
//设置Y轴文字标注
ui->widget->yAxis->setLabel("y");
//设置X轴坐标范围
ui->widget->xAxis->setRange(-20,20);
//设置Y轴坐标范围
ui->widget->yAxis->setRange(-20,20);
//在坐标轴右侧和上方画线,和X/Y轴一起形成一个矩形
ui->widget->axisRect()->setupFullAxesBox();
}
void MainWindow::slot_timeout()
{
ui->widget->graph(0)->addData(x,y);
//传入数据
ui->widget->graph(1)->addData(x,y);
x=x+1;
y=x;
ui->widget->replot();
}
来源:CSDN
作者:莫照生
链接:https://blog.csdn.net/qq_37680974/article/details/103618679