QFileDialog 文件对话框

news2024/11/18 13:37:09

文章目录

  • 1、简介
  • 2、公共类型
  • 3、属性
  • 4、functions
    • 1、访问属性相关 function
    • 2、静态公共成员
      • 1、 通过对话框获取用户选择的文件路径:QFileDialog::`getOpenFileName`
      • 2、 通过对话框获取用户选择的文件夹路径:QFileDialog::`getExistingDirectory`
    • 3、Public Functions

QT 官方文档参考地址:https://doc.qt.io/qt-5/qfiledialog.html

1、简介

QFileDialog 类提供了一个允许用户选择文件或目录的对话框,在 PyQt5.Widgets 的模块中。
在这里插入图片描述

2、公共类型

1、 enum AcceptMode

对话框的接受模式,定义对话框是用于打开还是保存文件。

  • AcceptOpen打开文件
  • AcceptSave保存文件

2、 enum DialogLabel

对话框中的标签,可使用 setLabelText() 设置标签上的文本。

  • LookIn
  • FileName
  • FileType
  • Accept
  • Reject

3、 enum FileMode

此枚举用于指示用户可以在文件对话框中选择什么,即如果用户单击确定,对话框将返回什么。

  • AnyFile:文件名,不管它是否存在。
  • ExistingFile:单个现有文件的名称。
  • Directory:目录的名称。 显示文件和目录。
  • ExistingFiles:零个或多个现有文件的名称。

4、 enum Option

  • ShowDirsOnly只在文件对话框中显示目录。(仅在目录文件模式(Directory)下有效。)
  • DontResolveSymlinks:不解析文件对话框中的符号链接。
  • DontConfirmOverwrite:如果选择了现有文件,则不要求确认。
  • DontUseNativeDialog:不要使用本机文件对话框。
  • ReadOnly:表示模型是只读的。
  • , …,
  • DontUseCustomDirectoryIcons :始终使用默认目录图标。

5、flags Options
保存对话框参数设置

6、enum ViewMode

这个枚举描述了文件对话框的视图模式,即将显示有关每个文件的哪些信息。

  • Detail:显示目录中每个项目的图标、名称和详细信息。
  • List:仅显示目录中每个项目的图标和名称。

3、属性

1、acceptMode(类型:AcceptMode

此属性保存对话框的接受模式,定义对话框是用于打开还是保存文件。
默认情况下,此属性设置为AcceptOpen。

2、defaultSuffix(类型: QString

默认后缀。
此属性指定一个字符串,它将被添加到文件名中。后缀通常用于表示文件类型(例如“txt”表示文本文件)。
如果第一个字符是点 (‘.’),则将其删除。

3、fileMode(类型:FileMode

对话框的文件模式。文件模式定义了用户希望在对话框中选择的项目的数量和类型。
默认为 AnyFile。

4、options (类型:Options

影响对话框外观的各种选项。默认情况下,所有选项都被禁用。
选项应在显示对话框之前设置。

5、supportedSchemes (类型:QStringList

文件对话框应允许导航到的 URL 方案。

6、viewMode(类型:ViewMode

文件和目录在对话框中的显示方式。

4、functions

1、访问属性相关 function

1、QFileDialog::AcceptMode acceptMode() const

获取对话框的接受模式,是用于打开还是保存文件。

2、void setAcceptMode(QFileDialog::AcceptMode mode)

设置对话框的接受模式,是用于打开还是保存文件。

2、静态公共成员

1、 通过对话框获取用户选择的文件路径:QFileDialog::getOpenFileName

// C++
QString QFileDialog::getOpenFileName (
          QWidget * parent = 0,  // parent,用于指定父组件。
          const QString & caption = QString(), // caption,是对话框的标题;
          const QString & dir = QString(),    //dir,是对话框显示时默认打开的目录
          const QString & filter = QString(), // filter,是对话框的后缀名过滤器
          QString * selectedFilter = 0, // selectedFilter,是默认选择的过滤器
          Options options = 0 )    // options,是对话框的一些参数设定
# python
getOpenFileName(parent: QWidget | None = ..., 
			caption: str = ..., 
			directory: str = ..., 
			filter: str = ..., 
			initialFilter: str = ..., 
			options: Options | Option = ...
	) -> Tuple[str, str]  # 返回一个元组 (path,selectedFilter)

  • parent :用于指定父组件,如果parent不是nullptr,那么它将把对话框定位在parent的标题栏下方。
  • caption:QFileDialog对话框的标题
  • dir :对话框显示时默认打开的目录
  • filter:对话框中文扩展名的过滤器。文件对话框只显示与给定过滤器匹配的文件。
    • 如果你想要多个过滤器,用 ;; 例如: "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
  • selectedFilter:默认选择的过滤器
  • options:options参数包含关于如何运行对话框的各种选项,有关可以传递的标志的更多信息,请参阅QFileDialog:Option enum。

Python 代码示例:

# 在python 中 getOpenFileName 的返回值是一个元组,包含选择的文件路径和过滤器
fname ,_ = QFileDialog.getOpenFileName(
		self.ui,
		'选择音频文件路径',
		'./',
		'files type(*.mp3 *.mp4);;Images (*.png *.xpm *.jpg)')

# 返回值示例:('E:/mp3/这世界那么多人-莫文蔚.mp3', 'files type(*.mp3 *.mp4)')

在这里插入图片描述

2、 通过对话框获取用户选择的文件夹路径:QFileDialog::getExistingDirectory

// C++
QString QFileDialog::getExistingDirectory(
			QWidget *parent = nullptr,  // parent,用于指定父组件。
			const QString &caption = QString(),  // caption,是对话框的标题;
			const QString &dir = QString(),  //dir,是对话框显示时默认打开的目录
			QFileDialog::Options options = ShowDirsOnly)  // options,是对话框的一些参数设定
# python
getExistingDirectory(parent: QWidget | None = ..., 
			caption: str = ..., 
			directory: str = ..., 
			options: Options | Option = ...
		) -> str # 返回 文件夹 path
  • parent :用于指定父组件,如果parent不是nullptr,那么它将把对话框定位在parent的标题栏下方。
  • caption:QFileDialog对话框的标题
  • dir :对话框显示时默认打开的目录
  • options:options参数包含关于如何运行对话框的各种选项,有关可以传递的标志的更多信息,请参阅QFileDialog:Option enum。
    • ShowDirsOnly :只在文件对话框中显示目录。默认情况下,同时显示文件和目录。(仅在目录文件模式下有效。)

Python 代码示例:

dirpath = QFileDialog.getExistingDirectory(
				self.ui,
                '选择音频文件路径',
                './',
                QFileDialog.Option.ShowDirsOnly)

在这里插入图片描述

3、Public Functions

pass

更多参考:https://blog.csdn.net/kenfan1647/article/details/122910283

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

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

相关文章

家庭资产配置

不同家庭的资产配置 理财就是理人生 为人生的每件事,准备好相应的钱 生存的事 生活费 假设我们今年30岁,则至60岁期间所需的日常生活开支为: 4000元/月X 12月X30年144万 养老的事 养老费 吃饭居住娱乐其他开销60至80岁期间所需的养老…

用Wokwi仿真ESP-IDF项目

陈拓 2023/10/21-2023/10/21 1. 概述 Wokwi是一个在线的电子电路仿真器。你可以使用它来仿真Arduino、ESP32、STM32和许多其他流行的电路板、元器件以及传感器,免去使用开发板。 Wokwi提供基于浏览器的界面,您可以通过这种简单直观的方式快速开发一个…

农产品农货经营小程序商城的作用是什么

农产品行业涵盖的产品很多,以小麦、稻子、玉米、高粱等为主,还有粮油、果蔬、畜牧等产品。 自建技术团队,耗时耗力,培养成本较高,销售渠道单一、等客上门、产品无法高效宣传及促进用户购买,营销力不足&…

会声会影2023官方破解版激活码

随着短视频、vlog等媒体形式的兴起,视频剪辑已经成为了热门技能。甚至有人说,不会修图可以,但不能不会剪视频。实际上,随着各种智能软件的发展,视频剪辑已经变得越来越简单。功能最全的2023新版,全新视差转…

JavaWeb学生管理系统(详细源码+解析)

​ 很多人大学的第一个小项目就是使用JavaWeb实现了一个学生管理系统或者是图书管理系统。在没有项目经验的情况下,前后端都需要自己去完成,还是要耗费不少时间精力的。本次我就分享一下我在大学期间完成的第一个小项目:学生管理系统。采用的…

2023年【司钻(钻井)】及司钻(钻井)作业模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 司钻(钻井)是安全生产模拟考试一点通生成的,司钻(钻井)证模拟考试题库是根据司钻(钻井)最新版教材汇编出司钻(钻井&#…

Tuxera NTFS2023破解版苹果电脑磁盘读写工具

当您获得一台新 Mac 时,它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存或写入您的 Mac,您需要一个附加的 NTFS 驱动程序。Tuxera 的 Microsoft NTFS for Mac 是一款易于使用的软件,可以在 Mac 上打开、编辑、复制、移动或删…

性能优化:JIT即时编译与AOT提前编译

优质博文:IT-BLOG-CN 一、简介 JIT与AOT的区别: 两种不同的编译方式,主要区别在于是否处于运行时进行编译。 JIT:Just-in-time动态(即时)编译,边运行边编译:在程序运行时,根据算法计算出热点代码&#xf…

CVE-2019-1388 UAC提权实战

1.查看用户权限:guest来宾权限 2.右键-以管理员身份运行: 3.这个时候会弹出UAC,不用管它,点击:显示详细信息 4.然后点击蓝色字体:显示有关此发布者的证书信息 5.来到证书信息这里,点击颁发着…

线程是如何在 6 种状态之间转换的?

Java全能学习面试指南:https://javaxiaobear.cn 今天我们主要学习线程是如何在 6 种状态之间转换的。 线程的 6 种状态 就像生物从出生到长大、最终死亡的过程一样,线程也有自己的生命周期,在 Java 中线程的生命周期中一共有 6 种状态。 …

揭开 Amazon Bedrock 的神秘面纱 | 基础篇

在 2023 年 4 月,亚马逊云科技曾宣布将 Amazon Bedrock 纳入使用生成式人工智能进行构建的新工具集。Amazon Bedrock 是一项完全托管的服务,提供各种来自领先 AI 公司(包括 AI21 Labs、Anthropic、Cohere、Stability AI 和 Amazon 等&#xf…

Python学习第一天-安装Python

文章目录 前言一、下载Python二、执行安装程序三、命令行验证总结 前言 以下榜单来自于TIOBE编程语言流行指数 不多说了,Python天下第一 一、下载Python 从官网下载Python安装程序 二、执行安装程序 找到python-3.12.0-amd64.exe执行,选择Install …

基于Python3的Scapy构造DNS报文

一:DNS协议 DNS(Domain Name System)协议是计算机网络中的一种基础协议,它用于将域名(如www.baidu.com)转换为IP地址(如192.168.0.1),从而实现计算机之间的通信。 DNS 分…

【Unity地编细节】为什么Unity笔刷在地形上面刷不出来

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 😶‍🌫️收录于专栏:unity细节和bug 😶‍🌫️优质专栏 ⭐【…

【编解码】解码字符串中的 UNICODE 字符

前言 由于前后端交互中编码的问题,出现了这样的一串字符: {"share_names":["\u4e2d\u6587\u8def\u5f84"]}出现了unicode编码作为字符串内容的情况,直接用json解析的话会报错,所以在json解析前需要先进行转码…

Linux | 深入浅出冯诺依曼

前言 但凡是科班出生的小伙伴多多稍稍应该都听过冯诺依曼体系吧,这似乎已成为入门计算机的必备知识了,本章就带着大家一起去理解冯诺依曼体系; 一、体系构成 冯诺依曼体系主张计算机由五大部件组成,如下所示; 输入设备…

进程(0)——计算机的中的软硬件【Linux】

进程(0)——计算机的中的软硬件【Linux】 一.硬件:1.1 冯诺依曼结构:1.2 存储金字塔1.2.1输入设备和存储器:1.2.2输出设备和存储器: 二.软件:2.1 操作系统2.1.1 如何理解管理: 博主自…

【Asp.net】Asp.net core中IIS配置注意事项

1、应用地址池设为无托管代码 一、提示:关于IIS上运行ASP.NET Core 站点的“HTTP 500.19”错误 安装dotnet-hosting-3.1.2-win.exe ASP.NET Core 3.1 Runtime (v3.1.2)下载地址: https://download.visualstudio.microsoft.com/download/pr/dd119832-dc4…

visual studio Qt 开发环境中手动添加 Q_OBJECT 导致编译时出错的问题

问题简述 创建项目的时候,已经添加了类文件,前期认为不需要信号槽,就没有添加宏Q_OBJECT,后面项目需要,又加入了宏Q_OBJECT,但是发现只是添加了一个宏Q_OBJECT,除此之外没有改动其它的代码,原本…

AWS Lambda 操作 RDS 示例

实现目标 创建一个 Lambda 接收调用时传入的数据, 写入 RDS 数据库 Post 表存储文章信息. 表结构如下: idtitlecontentcreate_date1我是标题我是正文内容2023-10-21 15:20:00 AWS 资源准备 RDS 控制台创建 MySQL 实例, 不允许 Public access (后面 Lambda 需要通过 VPC 访问…