Skip to content

Commit 892956d

Browse files
committed
[feat] add drop image opening
1 parent a9e7dfd commit 892956d

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

ImageViewer.py

+16
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def __init__(self):
3636

3737
self.setMouseTracking(False)
3838
self.setViewport(QOpenGLWidget())
39+
self.setAcceptDrops(True)
3940

4041
self.undoAction = QAction(self, self.tr("Undo"))
4142
self.undoAction.setShortcut(QKeySequence(QKeySequence.Undo))
@@ -45,6 +46,7 @@ def __init__(self):
4546

4647
self.scene = QGraphicsScene(self)
4748
self.image = QGraphicsPixmapItem()
49+
self.image.setAcceptDrops(True)
4850
self.scene.addItem(self.image)
4951
self.setScene(self.scene)
5052
self.setTransformationAnchor(QGraphicsView.AnchorViewCenter)
@@ -72,6 +74,7 @@ def setImage(self, path):
7274
'''
7375
Open an image from a file.
7476
'''
77+
self.clear()
7578
self.pixmap = QPixmap(path)
7679
self.image.setPixmap(self.pixmap)
7780

@@ -156,3 +159,16 @@ def undo(self):
156159
if self.painterStack:
157160
self.pixmap = self.painterStack.pop()
158161
self.image.setPixmap(self.pixmap)
162+
163+
def clear(self):
164+
self.pixmap = None
165+
self.image.setPixmap(self.pixmap)
166+
self.painterStack.clear()
167+
168+
def dropEvent(self, event):
169+
mimeData = event.mimeData()
170+
if mimeData.hasUrls():
171+
self.setImage(mimeData.urls()[0].toLocalFile())
172+
173+
def dragEnterEvent(self, event):
174+
event.acceptProposedAction()

0 commit comments

Comments
 (0)