【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.hqwc.cn/news/344115.html

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

相关文章

12.8-1.8

2023.12.8 redis容器 docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf redis.conf不存在,需先在宿主机创建该目录下文件&#xff0c…

【回顾2023,展望2024】砥砺前行

2023年总结 转眼间,迎来了新的一年2024年,回顾2023,对于我来说是一个充满平凡但又充实又幸运的一年。这一年经历了很多的事情,包括博客创作、技术学习、出书、买房等,基本上每件事情都是一个前所未有的挑战和机遇、使…

clickhouse join查询算法

算法对比: 使用方法: SELECT town,max(price) AS max_price,any(population) AS population FROM uk_xxx_paid JOIN uk_xxx_table ON lower(uk_price_paid.town) lower(uk_populations_table.city) GROUP BY town ORDER BY max_price DESC SETTINGS jo…

ChatGLM3在windows上部署

1 项目地址 https://github.com/THUDM/ChatGLM3 简介:ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。 2 本机配置 台式机: CPU: Intel(R) Core(TM) i7-10700F RAM: 32G GPU: NV…

科技顶天,市场立地 。璞华科技“顶天立地”的成长之路

科技顶天,市场立地。 几十年来,我们越来越深刻地认识到,这就是真理,质朴而深刻。尤其在当前特殊的国际国内商业环境中,这一理念不但没有过时,反而恰逢其时。有这么一家企业,一直践行“科技顶天…

【分块模板】P2068统计和

题目传送门:统计和 - 洛谷 题目大意 给定一个长度为 n,初始值都为 0 的序列 ,有w次操作,每次操作: x a b 表示将a的值加上b,y a b 表示查询a到b的数字和。 思路 这题其实有很多做法,包括线…

8年经验之谈!一文看懂性能测试的流程!

每天做着点点点测试有没有危机感? 突然有一天,领导说:“小王,今天把996福报系统压一下,下班前把压测报告发我邮箱。” 啥?压测?今天?报告?怎么压?怎么写&am…

Flask+ Dependency-injecter+pytest 写测试类

最近在使用这几个在做项目,因为第一次用这个,所以不免有些问题。总结下踩的坑 1.测试类位置 首先测试类约定会放在tests里面,不然有可能发生引入包的问题,会报错某些包找不到。 2. 测试类依赖注入 这里我就用的真实的数据库操作…

蓝桥杯单片机组备赛——蜂鸣器和继电器的基本控制

文章目录 一、蜂鸣器和继电器电路介绍二、题目与答案2.1 题目2.2 答案2.3 重点函数解析 一、蜂鸣器和继电器电路介绍 可以发现两个电路一端都接着VCC,所以我们只要给另一端接上低电平就可以让蜂鸣器和继电器进行工作。与操作LED类似,只不过换了一个74HC5…

小白进公司快速熟悉环境和代码的方法

1.企业开发模式 企业开发模式里,我们的项目模块可能非常多此时我们是不能将所有模块都拉取到本地的,主要原因如下: 我们很可能并没有全部工程代码的权限 微服务集群部署非常复杂,本地部署成本太高 微服务模块众多,本…

vue3用elementplus table渲染二维码使用方法

TOC 在Vue3中实现二维码生成需要使用第三方库来处理生成二维码的逻辑,常用的库有 qrcode和 vue-qrcode,这篇文章主要介绍了在Vue3中使用vue-qrcode库实现二维码生成,需要的朋友可以参考下 本文主要介绍在Vue3中使用qrcode库实现二维码生成的方法。 在Vue3中实现二维码生成需…

酚醛胶面建筑模板 — 广西厂家直销,质保可靠

在现代建筑行业中,选择高质量的建筑板材对于确保施工质量和工程安全至关重要。广西厂家直销的酚醛胶面建筑板,以其卓越的质量和可靠的质保,成为了建筑行业的优选材料。 产品特性 卓越的耐候性:我们的酚醛胶面建筑板采用高品质酚醛…