处理QGraphcisPixmapItem中的像素
问题描述:
我正在使用PyQt构建查看图像的小应用程序。当我点击图片,我想改变我已经点击的像素的颜色:处理QGraphcisPixmapItem中的像素
示意我当前的代码看起来是这样的:
scene = QtGui.QGraphicsScene()
view = QtGui.QGraphicsView(scene)
image = QtGui.QImage("image.png")
pixmap = QtGui.QGraphicsPixmapItem(QtGui.QPixMap.fromImage(image))
scene.addItem(pixmap)
...
...
def mousePressEvent(self , event):
print "Click on pixmap recorded - setting Pixel to red"
image.setPixel(event.pos() , RED.rgb())
代码“作品”在这个意义上,mousePressEvent ()方法被调用,并且image.setPixel()方法不会给出任何错误,但屏幕上没有任何反应。任何提示如何获取更新的像素显示?
乔金 -
答
要进行更改出现,您需要重新加载图像
self.image.setPixel(event.pos(), RED.rgb())
self.pixmap.setPixmap(QtGui.QPixmap.fromImage(self.image))
但我不知道这是一个很好的方式。如果您不需要保存修改的图像,我会添加一些圆圈(例如addEllipse
),而不是修改像素。
此外,不要忘记将窗口坐标映射到图像。