【python 图形界面】QT PySide 拖拽获取文件路径

在进行获取文件路径的操作时,可以选择使用文件对话框打开一个本地文件,也可以直接将文件拖到窗体上,自动获取此文件的绝对路径。

import sys
from PySide6.QtWidgets import QWidget, QApplication, QLineEdit, QMainWindow, QTextBrowser
class Window(QMainWindow):
    def __init__(self):
        super(Window, self).__init__()
        self.paths = ""  # ==> 默认文本内容
        self.setWindowTitle('文件拖入')  # ==> 窗口标题
        self.resize(500, 400)  # ==> 定义窗口大小
        self.textBrowser = QTextBrowser()
        self.setCentralWidget(self.textBrowser)  # ==> 定义窗口主题内容为textBrowser
        self.setAcceptDrops(True)  # ==> 设置窗口支持拖动(必须设置)
    # 鼠标拖入事件
    def dragEnterEvent(self, event):
        self.setWindowTitle('dragEnterEvent')
        file = event.mimeData().urls()[0].toLocalFile()  # ==> 获取文件路径
        if file not in self.paths:  # ==> 去重显示
            print("拖拽的文件 ==> {}".format(file))
            self.paths += file + "\n"
            self.textBrowser.setText(self.paths)
            # 鼠标放开函数事件
            event.accept()