处理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),而不是修改像素。

此外,不要忘记将窗口坐标映射到图像。