Try something around 100ms - for a line plot, where most of the content doesn't change this should be fast enough. Disable autoreplot and do the replot driven by a QTimer.I'll try with something around 25ms.
Nobody can read something that changes many times a second, but as all your labels are aligned to seconds a high refresh rate will simply redraw the same thing all the time. But this has absolutely no effect for looking more fluid.The high refresh rate is mostly just for the axis change (xBottom) looking more fluid and a marker in the graph that shows the current time in seconds.
What is a sample rate of 250ms only.I will draw a QwtCurve in the graph but with 4 points per seconds maximum(data income limit).
The size of this buffer will grow and after some time throwing out the values that are out of the visible area will need some time. Better also remove the invisible leading points from the buffer in each cycle.powerSamples.append(QPointF( timeNow, value ));
For a curve with 120 points ( 30 seconds * 4 points ) you don't have to take care much of rendering performance.When you say to disable antialiasing , ...
Also note that for a canvas with a width of ~600 pixels + showing a range of 30 seconds means, that each pixel covers a range of 50ms. Having a replot rate below this resolution will be nothing but a no-operation !
Uwe
Bookmarks