QT动态波形显示

点点圈 提交于 2019-12-24 05:37:14

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();
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!