Hello!

I'm having a problem concerning the regularity of the speed in which points in a Qwt graph are being plotted, i.e. after some points, the speed decreases.

My software contains a QTimer that is connecte through timeout() to a slot that reads the Y value to be plot in a QVector::front() and uses QwtPlotCurve::setData() and QwtPlot::replot() to plot it each timeout(). After reading the QVector, the first position is deleted.

The problem is that the QVector is huge - at the end something like 90 000 Y-coordinates should be in it - and therefore the Qwt should plot a graf with 90 000 points, and this seems to be causing a delay in the speed of the plotting, so when it starts, the speed is OK and the QTimer seems to be firing in the correct speed, but when the size of the Qwt graph begins to grow significantly (that is over 13 000 - 15 000 points plotted, but more significantly after 18 000 - 20 000 points), the speed begins to slow a little bit and gradually, so when the 90 000 point arrives, the plotting speed is less than half of what is programmed.

I and my friends imagine that this is maybe due to the internal buffer that Qwt possess that even allow me to stop the plotting and verify what has being plot - and I simply don't know if there is a function that allows to erase specific points in a QwtPlot; the only thing I know is QwtPlot::clear(), that doesn't work for this -. I think that the big size of this internal buffer is what is making the plotting "more difficult", i.e. more slow.

So I have some questions related to this problem:

1) Is truly the internal buffer what is creating the "slow" problem? yes or no, how could I solve this and force the plotting to occur always in the same speed - using the same functions that I use today?
2) Is there any other way to plot the points in the graph without using the QwtPlotCurve::setData() function but that still produces the same type of graph? I imagine that if there is a function that can plot point by point instead of creating a line between points some of my problems would be solved; I could just erase the previous point after a pre-determined number of points have being plotted. That would disable the possibility to check back what was plotted, but at least would discard the buffer big size - if that is what is truly making this problem appears.


Thanks very much,

Momergil.