PyQt でウィジェットを印刷しようとしていますが、「QPaintDevice: ペイントされているペイント デバイスを破棄できません」というエラーが表示されます。問題は、ペインタがピックスマップの描画を完了する前に、メソッドが終了するため、qPaintDevice が破棄されることだと思います。しかし、ペインターを遅くする方法がわかりません。
私のメソッドのコードは次のとおりです。
def printer(self):
"Prints the current diagram"
# Create the printer
printerobject = QtGui.QPrinter(0)
# Set the settings
printdialog = QtGui.QPrintDialog(printerobject)
if printdialog.exec_() == QtGui.QDialog.Accepted:
# Print
pixmapImage = QtGui.QPixmap.grabWidget(self.contentswidget)
painter = QtGui.QPainter(printerobject)
painter.drawPixmap(0, 0, pixmapImage)
価値があるので、.begin() および .end() アプローチを使用してみましたが、役に立ちませんでした。