On 04/10/2012 06:47 PM, Samuel Rødal wrote: > What's your use case? QwtPlot is a composite widget, where one of its children is a canvas ( QWidget ) to display the data. For this special widget the Qt::WA_OpaquePaintEvent attribute is enabled and therefore I have to render the background inside of the paint event.
There are 2 reasons for rendering the background myself: 1) Overlay widgets In combination with overlay widgets ( f.e rubberbands ) Qt doesn't restore the content of a widget from its backing store. For large scenes this leads to heavy repaints - too slow for operations like zooming. Because of this problem the canvas implements its own backing store, that is initialized using QPixmap::fill. 2) Style Sheets When using style sheets the borders are part of the background and rendered before the paint event is processed. But for rounded borders you need to render the widget in the following order: 1) background 2) content 3) border Otherwise antialiasing of the border is done wrong. > Maybe QWidget::render() with DrawWindowBackground > and no DrawChildren can be used instead? Guess this will work - I will try it. > The QPixmap::fill(const QWidget *...) function was not possible to > implement as in 4.8 since QPixmap is now part of QtGui whereas QWidget > is part of QtWidgets. I thought that modularization might be the reason. But if there are no plans to add an implementation somewhere else in the future I would suggest to remove the method completely. IMO it would be better to have a clean compiler error instead of a dummy implementation, that does nothing beside turning it into a runtime error. Uwe PS: my first reply was by accident not to the list - sorry Samuel _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development