3
我試圖在PyQt中打印一個小部件,但得到錯誤「QPaintDevice:無法銷燬正在繪製的繪製設備」。我認爲問題是我的方法結束了,因此qPaintDevice被銷燬,然後畫家完成了繪製像素圖。然而,我不知道如何減緩畫家的速度。在PyQt中打印圖像時出錯
我的方法的代碼是在這裏:
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關於()的辦法,但無濟於事。
不得不添加'del painter'是*不明顯,因爲它不是Pythonic。感謝您發現此問題,我遇到了同樣的問題。 – EvertW
通常,python垃圾收集器應該照顧這個。 必須是一些競爭條件.. – pixelbrei
而不是使用'del painter'你應該改用'painter.end()' – swinman