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

Was it helpful?

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top