In my current project I am needing to plot out time series data for 25-50 msec sampled at 62.5 Mhz. qwt handles it wonderfully when the samples are spaced further apart (as in not just baseline noise), however there are times when I do get baseline noise. When this happens the plotting interface really begins to struggle. I tracked down the issue to setStyle(QwtPlotCurve::Lines). By using setStyle(QwtPlotCurve:ots) instead, the performance drastically improved. Any tips on improving performance using Lines? Data reduction will need to be implemented at some point, but for now I need the raw samples.

Qt Code:
  1. directPainter_m = new QwtPlotDirectPainter();
  2.  
  3.  
  4. setAutoReplot( false );
  5. setCanvas( new Canvas() );
  6. zoom_m = new QwtPlotZoomer(canvas());
  7.  
  8. plotLayout()->setAlignCanvasToScales( true );
  9.  
  10. QwtPlotGrid *grid = new QwtPlotGrid();
  11. grid->setPen(QPen(Qt::gray, 1, Qt::DotLine));
  12. grid->setXAxis(0);
  13. grid->setYAxis(0);
  14. grid->enableX(true);
  15. grid->enableXMin(false);
  16. grid->enableY(true);
  17. grid->enableYMin(false);
  18. grid->attach(this);
  19.  
  20. plotOrigin_m = new QwtPlotMarker();
  21. plotOrigin_m->setLineStyle( QwtPlotMarker::HLine );
  22. plotOrigin_m->setValue(0.0,0.0);
  23. plotOrigin_m->setLinePen( Qt::gray, 0.0, Qt::DashLine );
  24. plotOrigin_m->attach( this );
  25.  
  26. plotCurve_m = new QwtPlotCurve();
  27. //plotCurve_m->setRenderThreadCount(0);
  28. plotCurve_m->setSymbol(NULL);
  29. plotCurve_m->setStyle( QwtPlotCurve::Dots );
  30. plotCurve_m->setPen( canvas()->palette().color( QPalette::WindowText ) );
  31. plotCurve_m->setRenderHint( QwtPlotItem::RenderAntialiased, false );
  32. plotCurve_m->setPaintAttribute( QwtPlotCurve::ClipPolygons, true );
  33. plotCurve_m->setPaintAttribute( QwtPlotCurve::FilterPoints , false );
  34. plotCurve_m->setPaintAttribute( QwtPlotCurve::MinimizeMemory , false );
  35.  
  36.  
  37. setAxisTitle( QwtPlot::xBottom, xLabel_m);
  38. setAxisTitle( QwtPlot::yLeft, yLabel_m);
  39.  
  40. connect(zoom_m, SIGNAL(selected(QRectF)), this, SIGNAL(selectedrect(QRectF)));
To copy to clipboard, switch view to plain text mode