2012-03-23 1 views
0

私はPyQtを使って画像を見るための小さなアプリケーションを構築しています。 mousePressEventその意味で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()) 

コードは「作品」:

概略的に私の現在のコードは次のようになります。私は、画像をクリックすると、私は私がクリックしたピクセルの色を変更したいです()メソッドが呼び出され、image.setPixel()メソッドはエラーを起こさないが、画面上で何も起こらない。更新されたピクセルを表示する方法に関するヒント

ヨアキム

答えて

0

変更が表示されるようにするには、画像

self.image.setPixel(event.pos(), RED.rgb()) 
self.pixmap.setPixmap(QtGui.QPixmap.fromImage(self.image)) 

をリロードする必要がありますしかし、私はそれは良い方法だとよく分かりません。変更した画像を保存する必要がない場合は、ピクセルを変更する代わりにサークル(例:addEllipse)を追加します。

また、ウィンドウ座標をimageにマップすることを忘れないでください。

関連する問題