Qt Malerei, ohne den Hintergrund Clearing
-
10-07-2019 - |
Frage
Ich bin mit einem QPainter einige Grafiken auf einem Fenster zu erhalten. Leider wird jedes Mal, wenn die paintEvent()
Funktion aufgerufen wird das gesamte Fenster gelöscht. Wie kann ich ohne Clearing ziehen? D. h Wie verlasse ich das Zeug aus früherem Paint-Ereignisse unberührt?
Ich bin mit Qt4
Lösung
Sie müssen die backgroundMode
durch die setBackgroundMode
Setter. Die Qt::NoBackground
Enum ist, was Sie suchen.
Andere Tipps
Da beide Antworten nur für Qt3 sind, hier ist die Lösung für Qt4. Sie müssen rufen
setAttribute(Qt::WA_OpaquePaintEvent);
(zum Beispiel im Konstruktor) im Anschluss an die Dokumentation hier .
In Qt3, stellen Sie die Qt::WNoAutoErase
Flagge aus dem WidgetFlags Enum zu vermeiden, dass das Fenster auf jeder Farbe Ereignisse gelöscht wird.
Sie können diesen Flag gesetzt, indem es auf die QWidget Konstruktor .