2012-11-22 28 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()