0
我試圖用Qgraphicview 裁剪圖像,但我現在面臨一個問題,偏移 這裏的QMainWindow中PyQt的QGraphicView鼠標座標系統
class ImageViewer(QtWidgets.QMainWindow):
def __init__(self):
super(ImageViewer, self).__init__()
self.scene = QtWidgets.QGraphicsScene()
self.imageLabel = QtWidgets.QLabel()
self.cropLabel = QtWidgets.QLabel()
self.scrollArea = QtWidgets.QScrollArea()
self.scrollArea.setWidget(self.imageLabel)
self.setCentralWidget(widget)
self.scene.addWidget(splitter)
self.view = QtWidgets.QGraphicsView(self.scene)
self.view.setMouseTracking(True)
self.view.setDragMode(QtWidgets.QGraphicsView.RubberBandDrag)
...
def mousePressEvent(self, eventQMouseEvent):
print("pressed")
self.originQPoint = self.view.mapToScene(eventQMouseEvent.pos())
self.currentQRubberBand = QtWidgets.QRubberBand(QtWidgets.QRubberBand.Rectangle, self)
self.currentQRubberBand.setGeometry(QtCore.QRect(self.originQPoint, QtCore.QSize()))
self.currentQRubberBand.show()
def mouseMoveEvent(self, eventQMouseEvent):
self.currentQRubberBand.setGeometry(QtCore.QRect(self.originQPoint, eventQMouseEvent.pos()).normalized())
def mouseReleaseEvent (self, eventQMouseEvent):
#self.currentQRubberBand.hide()
currentQRect = self.currentQRubberBand.geometry()
print(currentQRect)
self.currentQRubberBand.deleteLater()
cropPixmap = self.pixmap.copy(currentQRect)
self.cropLabel.setPixmap(cropPixmap)
cropPixmap.save('output.png')
代碼工作好,但我有一個抵消(似乎是保證金或菜單價值或混合)。所以我想我不是在好系統中,但不知道如何訪問它