0

我在这里做错了什么?我希望“image1.jpg”显示在“image.jpg”上,在我点击的位置,但事实并非如此。这是我的代码(image1.jpg 比 image.jpg 小 10 倍):

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()

编辑 1我已经尝试self.local_grview.setUpdatesEnabled(True)在 pixelSelect 方法结束时更新场景:self.local_grview.update(),没有任何改变

4

1 回答 1

0

您的代码看起来正确并且按我的预期工作,即。第二个较小的图像显示在第一个图像之上。

您是否尝试过仅显示第二张图片?也许您的路径不正确,导致您的第二张图片无法显示。

于 2013-09-02T01:39:37.597 回答