0

ここで何が間違っていますか?クリックした位置に「image.jpg」の上に「image1.jpg」が表示されると思いますが、表示されません。ここに私のコードがあります (image1.jpg は image.jpg の 10 分の 1 です):

import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import *
from PyQt4.QtCore import * 

class DrawImage(QMainWindow): 
    def __init__(self, parent=None):
        super(QMainWindow, self).__init__(parent)
        self.setWindowTitle('Select Window')
        self.local_image = QImage('image.JPG')
        self.local_grview = QGraphicsView()
        self.setCentralWidget( self.local_grview )
        self.local_scene = QGraphicsScene()
        self.image_format = self.local_image.format()
        self.pixMapItem = QGraphicsPixmapItem(QPixmap(self.local_image), None, self.local_scene)
        self.pixMapItem.setZValue(10.0)
        self.local_grview.setScene( self.local_scene )
        self.pixMapItem.mousePressEvent = self.pixelSelect

    def pixelSelect( self, event ):
        position = QPoint( event.pos().x(),  event.pos().y())
        local_image = QImage('image1.JPG')
        pixMapItem = QGraphicsPixmapItem(QPixmap(local_image), self.pixMapItem, self.local_scene)
        pixMapItem.setZValue(100.0)
        pixMapItem.setPos(position.x(), position.y());
        print position, self.pixMapItem.zValue(), pixMapItem.zValue()

def main():
    app = QtGui.QApplication(sys.argv)
    form = DrawImage()
    form.show()
    app.exec_()

if __name__ == '__main__':
    main()

編集 1self.local_grview.setUpdatesEnabled(True) pixelSelect メソッドの最後でシーンを更新してみました: self.local_grview.update()、何も変更されていません

4

1 に答える 1

0

あなたのコードは正しく見え、期待どおりに動作します。2 番目の小さい画像が最初の画像の上に表示されます。

2 番目の画像だけを表示してみましたか? おそらく、間違ったパスがあり、2 番目の画像が表示されない原因となっている可能性があります。

于 2013-09-02T01:39:37.597 に答える