我正在使用PyQt构建一个用于查看图像的小应用程序。当我点击图像时,我想改变我点击的像素的颜色:
示意性地,我当前的代码如下所示:
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()方法没有给出任何错误,但屏幕上没有任何反应。有关如何显示更新像素的任何提示?
乔金姆
答案 0 :(得分:0)
要进行更改,您需要重新加载图片
self.image.setPixel(event.pos(), RED.rgb())
self.pixmap.setPixmap(QtGui.QPixmap.fromImage(self.image))
但我不确定这是一个好方法。如果您不需要保存修改后的图片,我会添加一些圆圈(例如addEllipse
),而不是修改像素。
另外,不要忘记将窗口坐标映射到图像。