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(); }