Seite 1 von 1

aufruf von QPainter.end() zu vermeiden?

Verfasst: Freitag 5. Juni 2009, 18:32
von Dill
abend,

ich mache mir aus einem pixmap ein painter und übergebe diesen dann dem paint-handler eines QGraphicItems. ich bekomme folgende fehlermeldung:

Code: Alles auswählen

QPaintDevice: Cannot destroy paint device that is being painted.  Be sure to QPainter::end() painters!
aus der doku:
bool QPainter.end (self)

Ends painting. Any resources used while painting are released. You don't normally need to call this since it is called by the destructor.
painter.end() löst das problem auch:

Code: Alles auswählen

pixmap = QtGui.QPixmap(250, 250)
pixmap.fill(QtCore.Qt.transparent)
pixmap_painter = QPainter(pixmap)
item.paint(pixmap_painter, None, None)
pixmap_painter.end() #warum ist das hier notwendig?
meine frage ist jetzt, ob ich irgendwelchen murks gemacht habe, oder das in diesem fall nicht anders geht.