1.新建工程,添加QCustomer.h 和QCustomer.cpp源文件。
MainWindow.h的头文件
#include <QMainWindow>
#include <QTimer>
class Dialog;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QTimer *timer2;
Dialog *dlog1;
private slots:
void updateplot();
};
#endif // MAINWINDOW_H
MainWindow.cpp的源文件
#include "mainwindow.h"
#include "dialog.h"
#include "ui_mainwindow.h"
#include "qcustomplot.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
Dialog *dlog1=new Dialog(this); //设置参数更新
ui->plot->addGraph();
ui->plot->graph(0)->setPen(QPen(Qt::red));
ui->plot->graph(0)->setBrush(QBrush(QColor(0,0,255,20)));
ui->plot->xAxis2->setVisible(true);
ui->plot->yAxis2->setVisible(true);
ui->plot->xAxis->setLabel("time");
ui->plot->yAxis->setLabel("Value");
ui->plot->axisRect()->setupFullAxesBox();
ui->plot->yAxis->setRange(-1.2,1.2);
QTimer *timer2=new QTimer(this);
connect(timer2,SIGNAL(timeout()),this,SLOT(updateplot()));
connect(ui->plot->xAxis,SIGNAL(rangeChanged(QCPRange)),ui->plot->xAxis2,SLOT(setRange(QCPRange))); //设置自动更新
connect(ui->plot->yAxis,SIGNAL(rangeChanged(QCPRange)),ui->plot->yAxis2,SLOT(setRange(QCPRange))); //设置自动更新
timer2->start(100);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::updateplot()
{
ui->label_3->setText(QObject::tr("Time=%1").arg(Dialog::i));
ui->label->setText(QObject::tr("A=%1").arg(Dialog::a));
ui->label_2->setText(QObject::tr("B=%1").arg(Dialog::b));
ui->plot->graph(0)->addData(Dialog::i,Dialog::b);
ui->plot->xAxis->setRange(Dialog::i,360,Qt::AlignRight); //设置坐标轴更新样式
ui->plot->replot();
}