PyQt5 拖动事件 实例
2019-08-26 python 2426

import sys
from PyQt5.QtWidgets import QWidget,QApplication,QTextEdit,QVBoxLayout,QLabel
from PyQt5.QtGui import QDragEnterEvent,QPixmap
import os
class Drop(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setAcceptDrops(True)
h = QVBoxLayout()
self.txt = QTextEdit()
self.txt.setAcceptDrops(False)
self.lbl = QLabel("some thing")
h.addWidget(self.txt,5)
h.addWidget(self.lbl,5)
self.setLayout(h)
self.setGeometry(300,300,300,300)
self.setWindowTitle("拖动事件")
def dragEnterEvent(self,e: QDragEnterEvent):
if e.mimeData().hasUrls():
for url in e.mimeData().urls():
self.txt.setPlainText(url.path()+"\n")
filename = e.mimeData().urls()[0].path()
basename,ext = os.path.splitext(os.path.basename(filename))
print(basename)
if ext.upper() == ".PNG":
e.acceptProposedAction()
else:
e.ignore()
def dropEvent(self, e):
filename = e.mimeData().urls()[0].path()
realpath = filename[1:len(filename)]
print(realpath)
self.lbl.setPixmap(QPixmap(realpath))
e.accept()
if __name__ == "__main__":
app = QApplication(sys.argv)
d = Drop()
d.show()
sys.exit(app.exec_()) 很赞哦! (0)
相关文章
文章评论
-
-
-
0条评论