[Qt-interest] Qt Charting Component - Feedback Request
Uwe Rathmann
Uwe.Rathmann at tigertal.de
Mon Mar 7 15:50:39 CET 2011
Syam Krishnan wrote:
> I'm very much interested in a good charting component. We've been trying
> out Qwt, but it seems to have some performance problems when used with
> larger changing datasets.
When dealing with large data sets you always have to add some strategies to
reduce what has to be painted. In the end Qt ( and below ) has to render the
scene and this ( not Qwt ) is where the performance gets lost, when the
scene is too complex.
Qwt offers different algorithms or strategies how to do so. Some of them can
be enabled easily ( like clipping or weeding ) but in the end the author of
the application is the only one who knows how to use them depending on the
characteristics of the data and the individual plot requirements.
> Our requirement often is plotting of continuous data. i.e. a new data
> point is available every 100 or 200 ms. Adding these points to the plot
> should be as light-weight an operation as possible. As far as I can see,
> the current Qwt implementation requires copying the entire point list ...
QwtPlotCurve gets its samples through an abstract interface - comparable to
QAbstractModel, but with less overhead as it is for a series of samples
only. How to organize the samples is completely up to the
application code.
So when you want to do something light-weight do it - don't blame Qwt when
your application copies around !
> ... re-plotting from the beginning.
Qwt supports incremental painting - check the oscilloscope example in Qwt 6.
Isn't this "super-fast" ?
Note, that incremental painting ( or even painting on screen, where
supported ) is something that is somehow against Qt. Qt 4 was
always designed for nice desktop effects like semi transparent windows - but
never for applications requirements like high refresh rates and a lot of my
work on Qwt has to do with working around performance issues of Qt.
But painting incrementally isn't a solution for every situation. As soon as
you have to erase something ( f.e. after changing scales ) you have to
repaint the whole scene. But this is nothing special with Qwt and don't
expect something different from any other plot package.
Uwe
More information about the Qt-interest-old
mailing list