扩展PyQt或QT的图像查看器示例

2 投票
2 回答
2650 浏览
提问于 2025-04-16 01:09

我正在尝试扩展一个用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中绘图的教程没有涉及鼠标输入,但它可以帮助你了解如何使用这个工具来创建图形。你可以尝试不依赖鼠标输入来进行绘图,看看显示效果是否正确。

最后,你应该能够把这两者结合起来,利用鼠标事件和数据来驱动绘图过程。

撰写回答