pyqt5でドラッグ&ドロップで画像を取得、表示したい
python3.5を使っています。pyqt5を用いてウィンドウに画像をドラッグ&ドロップした時にその画像が表示されるようにしたいです。しかし、jpg画像をドラッグしてもドロップ可能の表示が出ません。当然ドロップしても何も起こりません。イメージとしては、下図のように左上の領域に画像をドラッグ&ドロップした時に、ウィンドウの中央にその画像が表示されるようにしたいです。
import sys
from PyQt5.QtWidgets import (QPushButton, QWidget,
QLineEdit, QApplication)
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Button(QPushButton):
def __init__(self, title, parent):
super().__init__(title, parent)
self.setAcceptDrops(True)
def dragEnterEvent(self, e):
#print(e.mimeData().formats())
if e.mimeData().hasFormat(e.mimeData().formats()):
e.accept()
else:
e.ignore()
def dropEvent(self, e):
self.label.setPixmap(QPixmap(event.mimeData().imageData()))
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
button = Button("",self)
button.resize(100,100)
button.setIcon(QIcon("drdr.png"))
button.setIconSize(QSize(100,100))
button.move(0, 0)
self.label = QLabel(self)
self.label.setPixmap(QPixmap('image.png'))
self.label.move(150,150)
self.setWindowTitle('Simple drag & drop')
self.setGeometry(300, 300, 300, 300)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
app.exec_()
しかし、画像をドラッグしてもドロップ可能のマークが出ません。当然、ドロップしても何も起こりません。