pyqt 拖拽文件

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()两个事件处理函数。

  •