在进行获取文件路径的操作时,可以选择使用文件对话框打开一个本地文件,也可以直接将文件拖到窗体上,自动获取此文件的绝对路径。
代码展示
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class example(QWidget):
def __init__(self):
super(example, self).__init__()
# 窗口标题
self.setWindowTitle('拖拽获取文件路径')
# 定义窗口大小
self.resize(500, 400)
self.QLabl = QLabel(self)
self.QLabl.setGeometry(0, 100, 4000, 38)
# 调用Drops方法
self.setAcceptDrops(True)
# 鼠标拖入事件
def dragEnterEvent(self, evn):
self.setWindowTitle('鼠标拖入窗口了')
self.QLabl.setText('文件路径:\n' + evn.mimeData().text())
# 鼠标放开函数事件
evn.accept()
# 鼠标放开执行
def dropEvent(self, evn):
self.setWindowTitle('鼠标放开了')
def dragMoveEvent(self, evn):
print('鼠标移入')
if __name__ == "__main__":
app = QApplication(sys.argv)
e = example()
e.show()
sys.exit(app.exec_())
操作截图
备注:
使用文件对话框打开一个本地文本文件
def openFile(self):
fname = QFileDialog.getOpenFileName(self, '打开文件','./')
if fname[0]:
with open(fname[0], 'r',encoding='gb18030',errors='ignore') as f:
self.tx.setText(f.read())