【PyQt小知识 - 8】:QFileDialog — 文件选择对话框(选择文件夹/文件)

文章目录

  • QFileDialog的介绍和使用

QFileDialog的介绍和使用

QFileDialog是Qt框架中提供的一个文件选择对话框。它可以让用户通过图形界面的方式选择文件或目录,并提供了许多与文件操作相关的实用功能,例如文件过滤、文件类型限制、文件名默认值、默认目录等。

它具有以下常用的静态方法:

  1. getOpenFileName():选择单个文件打开,返回文件的完整路径。
  2. getOpenFileNames():选择多个文件打开,返回文件的完整路径列表。
  3. getSaveFileName():选择单个文件保存,返回文件的完整路径。
  4. getExistingDirectory():选择一个目录打开,返回目录的完整路径。

QFileDialog的常见用法是在QPushButton的clicked信号或QAction的triggered信号的槽函数中打开对话框,例如:

from PyQt5.QtWidgets import *
import sysclass MainWindow(QMainWindow):def __init__(self):super().__init__()self.setup_ui()def setup_ui(self):self.widget = QWidget()self.setCentralWidget(self.widget)vbox = QVBoxLayout(self.widget)btu1 = QPushButton('选择单个文件')btu2 = QPushButton('选择多个文件')btu3 = QPushButton('选择单个目录')btu1.clicked.connect(self.Select_a_single_file)btu2.clicked.connect(self.Select_multiple_files)btu3.clicked.connect(self.Select_a_single_directory)vbox.addWidget(btu1)vbox.addWidget(btu2)vbox.addWidget(btu3)# 选择单个文件def Select_a_single_file(self):file_path, _ = QFileDialog.getOpenFileName(self, "选择文件", "", "All Files (*)")if file_path:print(file_path)# 选择多个文件def Select_multiple_files(self):file_paths, _ = QFileDialog.getOpenFileNames(self, "选择文件", "/", "Excel文件 (*.xlsx *xls);;Word文件 (*.docx)")if file_paths:print(file_paths)def Select_a_single_directory(self):dir_path = QFileDialog.getExistingDirectory(self, "选择目录", "F:/", QFileDialog.ShowDirsOnly)if dir_path:print("选择的目录路径:", dir_path)if __name__ == '__main__':app = QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec_())

注意:在QFileDialog中,我们可以使用斜杠 “/” 指定对话框中显示的起始目录。在这个例子中,"/" 表示从文件系统的根目录开始展示文件选择对话框。""表示从当前目录开始展示文件选择对话框。实际上,你可以根据需要将起始目录更改为你想要的任何有效路径,例如当前工作目录、特定目录结构等。

运行结果:
在这里插入图片描述

  • 选择单个文件
    • 点击“选择单个文件”后,从当前目录打开文件选择对话框。
      在这里插入图片描述
      在这里插入图片描述
  • 选择多个文件
    • 点击“选择多个文件”后,从根目录打开文件选择对话框。
      在这里插入图片描述
      在这里插入图片描述
  • 选择单个目录
    • 点击“选择单个目录”后,从F盘打开文件选择对话框。
      在这里插入图片描述
      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

17. C++ static、const 和 static const 类型成员变量声明以及初始化

1. C static、const 和 static const 类型成员变量声明以及初始化 const 定义的常量在超出其作用域之后其空间会被释放; static 定义的静态常量在函数执行后不会释放其存储空间; 1.2 static static 表示的是静态的 类的静态成员函数、静态成员变量是…

ASP.NET进销存系统源码

ASP.NET进销存系统源码 功能介绍: 财务 销售清单,填写销售单,客户管理,添加客户资料 销售 销售清单,填写销售单,客户管理,添加客户资料 仓库 仓库结存,仓库盘点,盘点结…

初学unity学习七天,经验收获总结

初学unity七天,经验收获总结 学习就是认识新观念和新想法的过程。 假如人们始终以同一种思维方式来考虑问题的话,那么始终只会得到同样的结果。 因为我对你讲述的许多内容是你以前从未接触过的,所以我建议你,在你还没有做之前&…

确保CentOS系统中的静态HTTP服务器的数据安全

确保CentOS系统中的静态HTTP服务器的数据安全是一项重要的任务,它有助于保护网站免受未经授权的访问、数据泄露和其他安全威胁。以下是一些关键步骤和最佳实践,以确保CentOS系统中静态HTTP服务器的数据安全: 限制访问权限确保只有授权用户可…

Springboot+vue整合 支付宝沙箱支付

可以完成的功能: 一、拉起支付 二、异步回调 三、掉单处理 四、超时关闭 五、订单退款

使用ffmpeg对视频进行静音检测

1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-sta…

uniapp项目 插件市场下载pdd-date-picker【年月日选择器】路径不对的问题

从HBuilder插件市场下载pdd-date-picker年月日插件之后 按照t它的官方问的进行引入你会发现路径不对,我们需要再自己的项目中重新去查看一下路径 下面是官方文档给出的路径 import pddDatePicker from ../../components/pdd-date-picker/index.vue我们需要将上面的…

ASP.NET房屋中介管理系统源码

ASP.NET房屋中介管理系统源码 房屋中介系统是非常实用的,不仅可以详细的记录房源信息、用户信息等, 同时本系统能够自动去查找和客户需求匹配的房源,可以方便客户同时提高使用者的工作质量与效率。

D25XB80-ASEMI开关电源桥堆D25XB80

编辑:ll D25XB80-ASEMI开关电源桥堆D25XB80 型号:D25XB80 品牌:ASEMI 封装:GBJ-5(带康铜丝) 特性:插件、整流桥 平均正向整流电流(Id):25A 最大反向击…

新版云进销存ERP销售库存仓库员工管理系统源码

新版云进销存ERP销售库存仓库员工管理系统源码 系统介绍:2022版本,带合同报价单打印,修复子账号不显示新加客户的BUG,还有其他方面的优化。 简单方便。 功能强大,系统采用phpMYSQL开发,B/S架构,方便随地使用…

面向零信任架构的访问安全态势评估

伴随着“云大物移”等新兴 IT 技术的快速发展,企业数字化转型使得 IT 业务的网络环境更加复杂多样,企业数字资源的安全防护正面临着前所未有的压力与威胁。零信任安全架构放弃了传统基于“边界”的安全模型,以访问上下文的安全态势感知为基础…

Python解包列表批量赋值技巧

一、引言 众所周知,我们可以在Python中通过下标如lst[1]来对列表进行解包,或者用*lst进行解包,但是如果你遇到下面的问题该如何解决呢? 有如下列表,我们要获取列表中的前二个元素和最后一个元素,组成一个…

为什么不直接public,多此一举用get、set,一文给你说明白

文章目录 1. 封装性(Encapsulation)2. 验证与逻辑处理3. 计算属性(Computed Properties)4. **跟踪变化(Change Tracking)5. 懒加载与延迟初始化(Lazy Initialization)6. 兼容性与未来…

如何查询慢 SQL 产生的原因

如何查询慢 SQL 产生的原因 (1)分析 SQL 执行计划(explain extended),思考可能的优化点,是否命中索引等。 (2)没有索引或者没有用到索引(这是查询慢最常见的问题,是程序…

Nightingale 夜莺监控系统 - 部署篇(1)

Author:rab 官方文档:https://flashcat.cloud/docs 目录 一、概述二、架构2.1 中心机房架构2.2 边缘下沉式混杂架构 三、环境四、部署4.1 中心机房架构部署4.1.1 MySQL4.1.2 Redis4.1.3 Prometheus4.1.4 n9e4.1.5 Categraf4.1.6 验证4.1.7 配置数据源 4…

条款23:宁以 non-member、non-friend 替换 member 函数

假设一个表示web浏览器的类: class WebBrowser { public:...void clearCache();void clearHistory();void removeCookies();void clearEverything(); // 调用clearCache,clearHistory,removeCookies };当然,这个也可以通过非成员函数调用适当的成员函数…

红队打靶练习:HOLYNIX: V1

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto whatweb 目录探测 1、gobuster 2、dirsearch 3、dirb 4、feroxbuster WEB sqlmap 1、爆库 2、爆表 3、爆列 4、爆字段 后台登录 1、文件上传 2、文件包含 3、越权漏洞 反弹shell 提权 总结 信息…

Spring整理-Spring Bean的生命周期

Spring Bean的生命周期涉及多个阶段,从Bean的定义到其销毁。在这个过程中,Spring容器负责创建、初始化、使用和最终销毁Bean。了解这个生命周期有助于更好地管理Bean的行为和资源使用。 Spring Bean生命周期的主要阶段 实例化(Instantiation):容器首先创建Bean的实例。填充…

数据分析---SQL(2)

目录 SQL语句的执行顺序是什么举例说明SQL如何实现去重操作举例说明如何将时间戳转为yyyy-MM-dd形式如何将yyyy-MM-dd改为yyyyMMdd形式如何求两个yyyyMMdd形式的日期差几天SQL语句的执行顺序是什么 在SQL中,一条SQL语句的执行顺序如下: FROM子句:首先,执行FROM子句,确定要…

【Java】——期末复习题题库(九)

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…