#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->centralWidget->setLayout(ui->horizontalLayout);
connect(t,SIGNAL(timeout()),this,SLOT(dataPlot()));
init_Plot();
}
void MainWindow::init_Plot()
{
ui->qwtPlot->setTitle("Plot Demo");
ui->qwtPlot->setAxisTitle(QwtPlot::xBottom,"x");
ui->qwtPlot->setAxisScale(QwtPlot::xBottom,0,10,1);
ui->qwtPlot->setAxisTitle(QwtPlot::yLeft,"y");
ui->qwtPlot->setAxisScale(QwtPlot::yLeft,0,30,5);
ui->qwtPlot->setCanvasBackground(Qt::white);
ui->qwtPlot->insertLegend(new QwtLegend(),QwtPlot::RightLegend);
QwtPlotGrid *grid = new QwtPlotGrid();
grid->attach(ui->qwtPlot);
curve1->setTitle("forse sensor");
curve1->setPen(Qt::blue,2);
curve1->setRenderHint(QwtPlotItem::RenderAntialiased,true);
curve1->attach(ui->qwtPlot);
curve2->setTitle("MMG sensor");
curve2->setPen(Qt::red,2);
curve2->setRenderHint(QwtPlotItem::RenderAntialiased,true);
curve2->attach(ui->qwtPlot);
QwtPlotMagnifier *magnifier = new QwtPlotMagnifier(ui->qwtPlot->canvas());
magnifier->setAxisEnabled(QwtPlot::yLeft,true);
QwtPlotPanner *panner = new QwtPlotPanner(ui->qwtPlot->canvas());
panner->setAutoFillBackground(true);
timeforPlot();
}
void MainWindow::timeforPlot()
{
t->start(300);
j = 0;
}
void MainWindow::dataPlot()
{
this->xData1.append(j);
this->yData1.append(2*j);
this->curve1->setSamples(xData1,yData1);
this->xData2.append(j);
this->yData2.append(2+j);
this->curve2->setSamples(xData2,yData2);
if(j>=10 && j <=30)
{
ui->qwtPlot->setAxisScale(QwtPlot::xBottom,j-10,j+1,1);
}
if(j>30)
{
ui->qwtPlot->setAxisScale(QwtPlot::xBottom,j-10,j+1,1);
ui->qwtPlot->setAxisScale(QwtPlot::yLeft,j-30,31+2*j,5);
}
ui->qwtPlot->replot();
j++;
}
MainWindow::~MainWindow()
{
delete ui;
}
Qt中用qwt实现动态绘制二维曲线
2星 需积分: 40 96 浏览量
2016-04-25
11:14:45
上传
评论 10
收藏 4KB RAR 举报
qinghuaxuri
- 粉丝: 0
- 资源: 2