扩展PyQt或QT的图像查看器示例
我正在尝试扩展一个用PyQt做的图片查看器示例,想要添加一个可以在图片上绘画的功能。
我添加了一些经过测试的函数,这些函数可以处理鼠标事件并在图片上绘制。
在这个图片查看器示例中,我选择了我的画笔来在imageLabel的图像上进行绘画。
def mousMoveEvent(self,event):
painter = QtGui.QPainter(self.imageLabel.pixmap()) painter.setPen(QtGui.QPen (self.chosenColor,self.chosenWidth,Qt.solidLine,Qt.RoundCap,Qt.RoundJoin)) painter.drawLine(self.laspoint,event.pos())
. . .
问题是:它根本没有在图像上绘画……它可以显示图片、缩放,其他功能都正常,但绘画就是不行。我是不是哪里做错了?我已经尝试了三天,但还是没有结果。有没有人有更好的主意呢?
提前谢谢大家!
2 个回答
0
我不知道这是否有帮助,但我成功地让一个选择框在一个小部件上显示出来,使用的是QLabel和QImage。基本上,每次我对QImage做出更改时,都需要重新设置它作为标签的图像:
self.imgLabel.setPixmap( QPixmap.fromImage( self.image ) )
1
首先,开始捕捉鼠标事件,并通过打印信息来显示结果,这样可以确保你获取到的鼠标数据是正确的。接下来的步骤是利用这些鼠标数据和鼠标事件来进行绘图。
虽然这个关于在PyQt中绘图的教程没有涉及鼠标输入,但它可以帮助你了解如何使用这个工具来创建图形。你可以尝试不依赖鼠标输入来进行绘图,看看显示效果是否正确。
最后,你应该能够把这两者结合起来,利用鼠标事件和数据来驱动绘图过程。