QwtPlotCurve::ClipPolygons improves the performance significant, for situations, where you zoom in and many points are outside of the visible area ( assuming you have a curve style, where your points are connected ).
For situations where all points are inside of the visible area you have to reduce the number of points you want to paint. It's obvious that 500000 points on a widget with 1000 pixels doesn't make too much sense. Reducing can be done by implementing different levels of detail - depending on the zoom level. ( f.e only every 10th point ).
You didn't write about the characteristics of your data. If your data isn't a series of points it might be better to use a different type of plot item.
Uwe
Bookmarks