前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >PyQt5 文件对话框QFileDialog

PyQt5 文件对话框QFileDialog

作者头像
用户6021899
发布2019-08-14 17:39:56
发布2019-08-14 17:39:56
7.3K0
举报

本篇介绍 PyQt5 中 QFileDialog 类的四种对话框:

1). 选择文件夹 对话框

QFileDialog.getExistingDirectory()

3个参数分别是父控件、标题、起始路径。返回值是字符串。

2). 选择文件 对话框

QFileDialog.getOpenFileName()

4个参数分别是父控件、标题、起始路径、文件扩展名过滤。返回值是由两个字符串构成的元组。元组第一个元素是文件名,第二个是文件类型名。

3). 多个文件选择 对话框

QFileDialog.getOpenFileNames()

4个参数分别是父控件、标题、起始路径、文件扩展名过滤。返回值是共两个元素的元组。元组第一个元素是文件名列表,第二个是文件类型名。

4). 文件另存为 对话框

QFileDialog.getSaveFileName()

4个参数分别是父控件、标题、起始路径、文件扩展名过滤。返回值是由两个字符串构成的元组。元组第一个元素是文件名,第二个是文件类型名。

代码如下:

import sys

import os from PyQt5.QtWidgets import *

class MainForm(QWidget): def __init__(self, name = 'MainForm'): super(MainForm,self).__init__() self.setWindowTitle(name) self.cwd = os.getcwd() # 获取当前程序文件位置 self.resize(300,200) # btn 1 self.btn_chooseDir = QPushButton(self) self.btn_chooseDir.setObjectName("btn_chooseDir") self.btn_chooseDir.setText("选择文件夹") # btn 2 self.btn_chooseFile = QPushButton(self) self.btn_chooseFile.setObjectName("btn_chooseFile") self.btn_chooseFile.setText("选取文件") # btn 3 self.btn_chooseMutiFile = QPushButton(self) self.btn_chooseMutiFile.setObjectName("btn_chooseMutiFile") self.btn_chooseMutiFile.setText("多文件选择") # btn 4 self.btn_saveFile = QPushButton(self) self.btn_saveFile.setObjectName("btn_saveFile") self.btn_saveFile.setText("文件另存为")

# 设置布局 layout = QVBoxLayout() layout.addWidget(self.btn_chooseDir) layout.addWidget(self.btn_chooseFile) layout.addWidget(self.btn_chooseMutiFile) layout.addWidget(self.btn_saveFile) self.setLayout(layout)

#连接 信号 和 槽 self.btn_chooseDir.clicked.connect(self.slot_btn_chooseDir) self.btn_chooseFile.clicked.connect(self.slot_btn_chooseFile) self.btn_chooseMutiFile.clicked.connect(self.slot_btn_chooseMutiFile) self.btn_saveFile.clicked.connect(self.slot_btn_saveFile)

def slot_btn_chooseDir(self): dir_choose = QFileDialog.getExistingDirectory(self, "选取文件夹", self.cwd) # 起始路径

if dir_choose == "": print("\n取消选择") return

print("\n你选择的文件夹为:") print(dir_choose)

def slot_btn_chooseFile(self): fileName_choose, filetype = QFileDialog.getOpenFileName(self, "选取文件", self.cwd, # 起始路径 "Text Files (*.txt);;PDF Files(*.pdf);;All Files (*)") # 设置文件扩展名过滤,用双分号间隔

if fileName_choose == "": print("\n取消选择") return

print("\n你选择的文件为:") print(fileName_choose) print("文件筛选器类型: ",filetype)

def slot_btn_chooseMutiFile(self): files, filetype = QFileDialog.getOpenFileNames(self, "多文件选择", self.cwd, # 起始路径 "All Files (*);;PDF Files (*.pdf);;Text Files (*.txt)") # 设置文件扩展名过滤,用双分号间隔 print(type(files));print(type(files[0])) if len(files) == 0:#files 是由文件名字符串组成的列表 print("\n取消选择") return

print("\n你选择的文件为:") for file in files: print(file) print("文件筛选器类型: ",filetype)

def slot_btn_saveFile(self): fileName_choose, filetype = QFileDialog.getSaveFileName(self, "文件保存", self.cwd, # 起始路径 "All Files (*);;Text Files (*.txt)") # 设置文件扩展名过滤,用双分号间隔

if fileName_choose == "": print("\n取消选择") return

print("\n你选择要保存的文件为:") print(fileName_choose) print("文件筛选器类型: ",filetype)

if __name__=="__main__": app = QApplication(sys.argv) mainForm = MainForm('QFileDialog') mainForm.show() sys.exit(app.exec_())

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档