Qt painting without clearing the background
-
10-07-2019 - |
Question
I'm using a QPainter to get some graphics on a window. Unfortunately every time the paintEvent()
function is called, the whole window is cleared. How can I draw without clearing? I.e. how do I leave the stuff from previous paint event untouched?
I'm using Qt4
Solution
You need to set the backgroundMode
by using the setBackgroundMode
setter. The Qt::NoBackground
enum is what you are searching for.
OTHER TIPS
Since both replies are for Qt3 only, here is the solution for Qt4. You need to call
setAttribute(Qt::WA_OpaquePaintEvent);
(for example in the constructor) following the documentation here.
In Qt3, set the Qt::WNoAutoErase
flag from the WidgetFlags enum to avoid that the window is cleared on each paint event.
You can set this flag by passing it to the QWidget constructor.