2012-11-22 44 views
1

我正在用於實時數據從串行端口繪製使用上QwtPlot對象Qt & Qwt .I'm繪製數據使用QwtPlotCurvesetData(QVector<double>&,QVector<double> method.Since我繪圖的應用程序大量的數據,x軸不斷縮小,使圖形在一定時間後變得醜陋。因此,我在繪製500點後重新設置了QVector<double>。它變得更好了,但我仍然一直收縮到500點。我不想那是。我需要X軸是static.Any解決方案?保持X軸長度固定在QWT劇情

以下是供參考的部分代碼。

d = new QVector<double>(); 
    t = new QVector<double>(); 
    curve = new QwtPlotCurve("My Plot"); 
    curve->setPen(QPen(Qt::red)); 
    curve->attach(ui->qwtPlot); 

繪製:

void MainWindow::plot(double val) 
{ 
    if(d->size() < 500) 
    { 
     d->push_back(val); 
     t->push_back(d->size()); 
    } 
    else 
    { 
     d->clear(); 
     t->clear(); 
     d->push_back(val); 
     t->push_back(d->size()); 

    } 

    curve->setData(*t,*d); 
    ui->qwtPlot->replot(); 
} 

plot()方法被觸發,每次新的數據可在串行端口。

回答

1

禁用自動調整,請參閱QwtPlot :: setAxisScale()