Well, Qwt 5 should not be much slower for your use case.
More important is what versions of Qt is used and what type of graphics system is behind: f.e Qt4/X11 is hardware accelerated.
But at least an easy to see performance issue of your code is antialiasing:
you can enable it when zooming in deep ( in this situation it is no problem because almost all polygons are clipped away ), but when displaying more than 600000 lines it is completely pointless.
The general idea behind showing a data set of many points ( > 600000 is not moderate anymore in terms of QPainter ) is to implement several data sets for different zoom levels. Here QwtPlotWeedingFitter can help ( don't use it inside replot ! ) - but then you need Qwt6.
But better ask on the Qwt support channels, I don't read here often.