gpt4 book ai didi

python - 在 PyQt 中打印图像时出错

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:30 24 4
gpt4 key购买 nike

我试图在 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() 方法,但无济于事。

最佳答案

我发现了我的问题——我忘记删除画家了,事后看来这是显而易见的(不是总是这样吗?)。在末尾添加“del painter”使代码工作。这是工作代码:

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)
del painter

关于python - 在 PyQt 中打印图像时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18999602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com