1
QGraphicsView에 그림 QPixmap이있는 QGraphicsscene이 있습니다. QPixmap QGraphicsItem.ItemIsMovable로 해결했습니다. 그리고 나는 그것이 움직일 때 그림의 위치를 얻고 싶다. 어떻게해야합니까?pyqt 이미지 위치 얻기
QGraphicsView에 그림 QPixmap이있는 QGraphicsscene이 있습니다. QPixmap QGraphicsItem.ItemIsMovable로 해결했습니다. 그리고 나는 그것이 움직일 때 그림의 위치를 얻고 싶다. 어떻게해야합니까?pyqt 이미지 위치 얻기
현재 이미지 위치를 알고 싶다면 pixmapItem.pos()
또는 pixmapItem.x()
및 pixmapItem.y()
에서받을 수 있습니다.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtCore, QtGui
class MovablePixmapItem(QtGui.QGraphicsPixmapItem):
def __init__(self, pixmap, *args, **kwargs):
QtGui.QGraphicsPixmapItem.__init__(self, pixmap, *args, **kwargs)
self.setFlags(QtGui.QGraphicsItem.ItemIsMovable |
QtGui.QGraphicsItem.ItemSendsGeometryChanges)
def itemChange(self, change, value):
if change == QtGui.QGraphicsItem.ItemPositionHasChanged:
print value.toPointF()
# do other work, or emit signal
return QtGui.QGraphicsPixmapItem.itemChange(self, change, value)
class MainWidget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.pixmapItem = MovablePixmapItem(QtGui.QPixmap('image.png'))
self.scene = QtGui.QGraphicsScene()
self.scene.addItem(self.pixmapItem)
self.view = QtGui.QGraphicsView(self.scene)
layout = QtGui.QVBoxLayout()
layout.addWidget(self.view)
self.setLayout(layout)
def do_test(self):
pass
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
widget = MainWidget()
widget.resize(640, 480)
widget.show()
sys.exit(app.exec_())
:
그러나 당신이 알 필요가 있다면이 이동 될 때, 당신은 QGraphicsPixmapItem
을 하위 클래스는, 오버라이드 itemChange
기능에 QGraphicsItem.ItemSendsGeometryChanges
플래그와를 받게되며 통지를 설정