【发布时间】:2019-02-02 23:06:33
【问题描述】:
我正在从事一个基本上是 Paint 的项目。我实现了打开文件功能,所以当我打开文件时它会加载到 QPixmap 中。
问题是:当我尝试在成功加载的 QPixmap 上绘图时,我的应用程序崩溃(没有错误或其他什么,它只是自行关闭)。我将提供用于绘制和打开文件的代码。我认为在这种情况下,其余的(UI 等)是不必要的。
绘图:
class Canvas(QLabel):
def __init__(self, parent=None):
super().__init__(parent)
p = self.palette()
p.setColor(self.backgroundRole(), Qt.white)
self.setAutoFillBackground(True)
self.setPalette(p)
self.myPixmap = QPixmap(600, 600)
self.painter = QPainter(self.myPixmap)
self.pen = QPen()
self.painter.setPen(self.pen)
self.painter.fillRect(0, 0, 600, 600, Qt.white)
self.setPixmap(self.myPixmap)
self.last = None
def mouseMoveEvent(self, event):
if self.last:
self.painter.setPen(self.pen)
self.painter.drawLine(self.last, event.pos())
self.last = event.pos()
self.setPixmap(self.myPixmap)
self.update()
def mousePressEvent(self, event):
self.last = event.pos()
def mouseReleaseEvent(self, event):
self.last = None
打开文件:
def openFile(self):
openFile_file = QFileDialog.getOpenFileName(None, 'Open File:', '', 'Images (*.png *.bmp *.jpg)')
openFile_ok = self.canvas.myPixmap.load(openFile_file[0])
self.canvas.setPixmap(self.canvas.myPixmap)
self.canvas.update()
print('open', openFile_ok)
【问题讨论】: