PyQt 是一个为Python编写的 GUI 库,支持拖拽和释放。要实现文件拖拽,需要在窗口中实现dragEnterEvent()和 dropEvent()两个事件处理函数。
dragEnterEvent()用于处理拖动操作进入窗口时的事件。
dropEvent()用于处理拖动操作在窗口内释放时的事件。
代码示例:
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QTextEdit, QLabel
from PyQt5.QtCore import Qt, QMimeData
class MyTextEdit(QTextEdit):
def __init__(self, parent=None):
super().__init__(parent)
def dragEnterEvent(self, e):
if e.mimeData().hasUrls():
e.accept()
else:
e.ignore()
def dropEvent(self, e):
for url in e.mimeData().urls():
self.append(url.toLocalFile())
if __name__ == '__main__':
app = QApplication(sys.argv)
text_edit = MyTextEdit()
text_edit.show()
sys.exit(app.exec_())
上面的代码创建了一个MyTextEdit类,它继承了QTextEdit类,并重写了dragEnterEvent()和dropEvent()两个事件处理函数。