QPrinter: painter.drawImage() beendet Gui mit Segment. Fault
Verfasst: 31. August 2006 20:32
Hi,
ich programmiere mit python und den dazugehoerigen Python bindings fuer Qt4. Ich erzeuge ein QImage, dass dann gedruckt werden soll. Alles funktioniert soweit, aber wenn die Zeile printerPainter.drawImage(0,0, image) ausgefuehrt wird, kommt es zu einem Segmentation Fault. Ich hab mir den Viewport und die neue groesse, des Images ausgegeben lassen und es sah gut aus. Also warum bekomme ich einen Segmentation Fault und das noch ohne irgendwelche Fehlemeldungen? Das Image als jpg speichern, funktioniert ohne Problem. Hier der Code der printer-routine:
def printView(self):
printDialog = QPrintDialog(self.printer, self)
if printDialog.exec_():
printerPainter = QPainter(self.printer)
# create an image of the current model
image = self.createImage(self.modelWidth*self.scalingFactor, self.modelHeight*self.scalingFactor)
# rescale the image according to printer settings
printerRect = printerPainter.viewport()
imageSize = image.size()
imageSize.scale(printerRect.size(), Qt.KeepAspectRatio)
# print image
printerPainter.setViewport(printerRect.x(), printerRect.y(), imageSize.width(), imageSize.height())
printerPainter.setWindow(image.rect())
#image.save("/home/katja/saveTest.jpg", "JPG")
printerPainter.drawImage(0, 0, image)
printerPainter.end()
ich programmiere mit python und den dazugehoerigen Python bindings fuer Qt4. Ich erzeuge ein QImage, dass dann gedruckt werden soll. Alles funktioniert soweit, aber wenn die Zeile printerPainter.drawImage(0,0, image) ausgefuehrt wird, kommt es zu einem Segmentation Fault. Ich hab mir den Viewport und die neue groesse, des Images ausgegeben lassen und es sah gut aus. Also warum bekomme ich einen Segmentation Fault und das noch ohne irgendwelche Fehlemeldungen? Das Image als jpg speichern, funktioniert ohne Problem. Hier der Code der printer-routine:
def printView(self):
printDialog = QPrintDialog(self.printer, self)
if printDialog.exec_():
printerPainter = QPainter(self.printer)
# create an image of the current model
image = self.createImage(self.modelWidth*self.scalingFactor, self.modelHeight*self.scalingFactor)
# rescale the image according to printer settings
printerRect = printerPainter.viewport()
imageSize = image.size()
imageSize.scale(printerRect.size(), Qt.KeepAspectRatio)
# print image
printerPainter.setViewport(printerRect.x(), printerRect.y(), imageSize.width(), imageSize.height())
printerPainter.setWindow(image.rect())
#image.save("/home/katja/saveTest.jpg", "JPG")
printerPainter.drawImage(0, 0, image)
printerPainter.end()