5

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

braX
  • 11,506
  • 5
  • 20
  • 33
viraptor
  • 33,322
  • 10
  • 107
  • 191

3 Answers3

5

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.

hochl
  • 12,524
  • 10
  • 53
  • 87
4

You need to set the backgroundMode by using the setBackgroundMode setter. The Qt::NoBackground enum is what you are searching for.

Patrice Bernassola
  • 14,136
  • 6
  • 46
  • 59
1

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.

Frerich Raabe
  • 90,689
  • 19
  • 115
  • 207