一、可直接运行代码
# encoding=gbk
from PyQt5 import QtCore, QtWidgets
import sys
# ui界面设置
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
# 主窗口参数设置
MainWindow.setObjectName("MainWindow")
MainWindow.resize(848, 721)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
# 设置按键参数
self.file = QtWidgets.QPushButton(self.centralwidget)
self.file.setGeometry(QtCore.QRect(57, 660, 175, 28))
self.file.setObjectName("file")
self.file.setStyleSheet(" margin: 0px; padding: 0px;" )
# 设置显示窗口参数
self.fileT = QtWidgets.QPushButton(self.centralwidget)
self.fileT.setGeometry(QtCore.QRect(300, 660, 480, 28))
self.fileT.setObjectName("file")
self.fileT.setStyleSheet(" margin: 0px; padding: 0px;" )
# 主窗口及菜单栏标题栏设置
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 848, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
################button按钮点击事件回调函数################
self.file.clicked.connect(self.msg)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Deecamp_Eurus"))
self.file.setText(_translate("MainWindow", "选择文件"))
self.fileT.setText(_translate("MainWindow", ""))
#########选择图片文件夹#########
def msg(self, Filepath):
fileName, fileType = QtWidgets.QFileDialog.getOpenFileName(None, "选取文件", "./", "All Files (*);;Text Files (*.txt)")
self.fileT.setText(fileName)
#########主函数入口 #########
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())
二、函数解释
fileName, fileType = QtWidgets.QFileDialog.getOpenFileName(None, "选取文件", "./", "All Files (*);;Text Files (*.txt)")
fileName是文件的绝对路径,fileType是文件类型
第一个参数parent,用于指定父组件,一般是一个窗口,在这个窗口建立选择文件的对话框。这里是None。
第二个参数caption,定义这个选择文件的对话框的标题。
第三个参数dir,是对话框显示时默认打开的目录。这里是当前文件夹下的data文件夹。
第四个参数filter,用于文件对话框中文件的选择类型范围。这里是能选择所有文件。
可以根据不同场景设计可选文件类型。
比如想要将xls和xlsx区分开,本参数可以写,注意是使用两个“;”隔开的
XLS File(.xls);;XLSX File(.xlsx)
三、函数变形
1、选择文件夹并显示
def msg(self,Filepath):
directory = QtWidgets.QFileDialog.getExistingDirectory(None,"选取文件夹","C:/") # 起始路径
self.fileT.setText(directory)
2、选择文件
def msg(self,Filepath):
fileName, fileType = QtWidgets.QFileDialog.getOpenFileName(self, "选取文件","./", "All Files (*);;Text Files (*.txt)")
#当窗口非继承QtWidgets.QDialog时,self需替换成 None
3、选择多个文件
def msg(self,Filepath):
directory = QtWidgets.QFileDialog.getOpenFileNames(self, self, "选取多个文件", "./","All Files (*);;Text Files (*.txt)")
#当窗口非继承QtWidgets.QDialog时,self需替换成 None
4、设置保存文件路径
def msg(self,Filepath):
directory = QtWidgets.QFileDialog.getSaveFileName(self, "设置路径","./","All Files (*);;Text Files (*.txt)")
#当窗口非继承QtWidgets.QDialog时,self需替换成 None
版权归原作者 雕刻刀 所有, 如有侵权,请联系我们删除。