Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PyQt5 文件对话框QFileDialog

PyQt5 文件对话框QFileDialog

作者头像
用户6021899
发布于 2019-08-14 09:39:56
发布于 2019-08-14 09:39:56
7.4K0
举报

本篇介绍 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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[PyQt5]文件对话框QFileDialog的使用
原文链接:https://blog.csdn.net/humanking7/article/details/80546728
祥知道
2020/03/10
3.6K0
Qt标准对话框的使用
学习编程个人觉得还是得从代码谈起,一方面有利于加深理解,另一方面也方便使(摘)用(抄)。
mythsman
2022/11/14
5940
PySide6 GUI 编程(27):QFileDialog的简单使用
密码学人CipherHUB
2024/08/21
4201
PySide6 GUI 编程(27):QFileDialog的简单使用
Python应用03 使用PyQT制作视频播放器
最近研究了Python的两个GUI包,Tkinter和PyQT。这两个GUI包的底层分别是Tcl/Tk和QT。相比之下,我觉得PyQT使用起来更加方便,功能也相对丰富。这一篇用PyQT实现一个视频播放器,并借此来说明PyQT的基本用法。 视频播放器 先把已经完成的代码放出来。代码基于Python 3.5: import time import sys from PyQt4 import QtGui, QtCore from PyQt4.phonon import Phonon class PollTi
Vamei
2018/01/18
3.5K0
Python应用03 使用PyQT制作视频播放器
PyQt5 模态对话框
所谓的模态对话框是指,一旦调用该对话框,它就会成为应用程序唯一能与用户进行交互的部件。在关闭对话框之前,用户都不能使用应用程序的其他部件。模态对话框是最简单的,因为会阻塞与对话框的父窗口及父窗口的兄弟窗口之间的其他任何交互,所以可降低对那些正在使用的数据在后台被修改的风险。模态对话框的缺点是用户不能实时地看到修改效果。
用户6021899
2019/08/13
2.5K0
【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)
在 PyQt5 中,信号(Signal) 和 槽(Slot) 是处理事件和交互的核心机制。信号代表某个事件的发生,而槽是信号触发后执行的函数。
半截诗
2024/10/09
3.9K0
【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)
【Qt】:Dialog 对话框
模态对话框 指的是:显示后无法与父窗口进行交互,是⼀种阻塞式的对话框。使用 QDialog:: exec () 函数调用。
IsLand1314
2025/02/28
3061
【Qt】:Dialog 对话框
分词工具集成
本部分记录如何利用Python进行分词工具集成,集成工具可以实现运行无环境要求,同时也更方便。 成品展示 大家要是想体验的话,就下载了试试吧,有点大,主要是pyqt5太大了,好几百兆… 用的是天翼
MinChess
2022/12/26
9730
分词工具集成
PyQt5 基本窗口控件(状态栏/窗口/图标/提示消息/QLabel/文本类控件)
文章目录 1. 状态栏 2. 窗口居中显示 3. 关闭窗口 4. QWidget 5. 添加图标 6. 气泡提示信息 7. QLabel 添加快捷键 8. QLineEdit echoMode 验证器 inputMask 综合练习 9. QTextEdit learn from 《PyQt5 快速开发与实战》 1. 状态栏 self.statusbar.showMessage("hello, Michael", 2000),第二个参数是显示多长时间ms,默认无限长时间 # -*- coding: utf-8
Michael阿明
2022/05/10
2.7K0
PyQt5 基本窗口控件(状态栏/窗口/图标/提示消息/QLabel/文本类控件)
Python Qt GUI设计:窗口之间数据传递(拓展篇—5)
在开发程序时,如果这个程序只有一个窗口,则应该关心这个窗口里面的各个控件之间是如何传递数据的。如果这个程序有多个窗口,那么还应该关心不同的窗口之间是如何传递数据的。
不脱发的程序猿
2021/12/08
3.4K0
Python Qt GUI设计:窗口之间数据传递(拓展篇—5)
python pyqt5 弹出框传递数据
from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * import sys
用户5760343
2019/07/22
1.9K0
PyQt5的主窗口QMainWindow简介
看过上一篇我们知道,在PyQt5中了,所有的控件都是继承自。在桌面应用当中,我们常用的软件都会包含一个主窗口。主窗口就是承载所有控件的一个窗体。在PyQt5当中常用的主窗体有两种QMainWindow和QDialog。当然这两个也是继承自QWidget类。因为他们都继承自这个类,所以这三个类都是可以用来创建主窗口的,可以直接使用,也可以继承后再使用。
星星在线
2019/05/28
4.1K0
PySide6 项目开发全攻略:打造你的文件重命名神器
家人们,今天来给大家唠唠如何用 PySide6 打造一个超实用的文件重命名工具。这篇文章适合想搞点 GUI 开发的 Python 小白,也能帮有经验的大佬查漏补缺。话不多说,咱们开整!
小码农薛尧
2025/02/08
1230
PySide6 项目开发全攻略:打造你的文件重命名神器
PyQt十讲 | 浅谈信号与槽
信号与槽机制作为Qt最重要的特性,提供了任意两个Qt对象之间的通信机制。信号会在某个特定情况或动作下被触发,槽是用于接收并处理信号的函数。
潘永斌
2019/10/08
1.4K0
PyQt十讲 | 浅谈信号与槽
对话框
对话框是一个现代GUI应用不可或缺的一部分。对话是两个人之间的交流,对话框就是人与电脑之间的对话。对话框用来输入数据,修改数据,修改应用设置等等。
小飞侠xp
2018/12/24
2.5K0
PyQt5常见布局、控件用法有哪些?
闻说社
2024/07/12
2380
PyQt5常见布局、控件用法有哪些?
利用简书图片上传功能搭建快速免费的图床
后来发现简书的写文章页面可以上传图片,于是萌生了利用简书的图片上传功能来搭建一个图床的想法。
渔父歌
2018/09/26
1.8K0
PyQt5 入门
我的路径是:D:\ProgramData\Anaconda3\envs\cv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
Michael阿明
2022/05/10
1.5K0
PyQt5 入门
相关推荐
[PyQt5]文件对话框QFileDialog的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档