• QFileDialog 文件对话框


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

    1、简介

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

    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,是对话框的一些参数设定
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    # python
    getOpenFileName(parent: QWidget | None = ..., 
    			caption: str = ..., 
    			directory: str = ..., 
    			filter: str = ..., 
    			initialFilter: str = ..., 
    			options: Options | Option = ...
    	) -> Tuple[str, str]  # 返回一个元组 (path,selectedFilter)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 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(
    #fname ,_ = QFileDialog.getOpenFileNames(  选择多个文件
    		self.ui,
    		'选择音频文件路径',
    		'./',
    		'files type(*.mp3 *.mp4);;Images (*.png *.xpm *.jpg)')
    
    # 返回值示例:('E:/mp3/这世界那么多人-莫文蔚.mp3', 'files type(*.mp3 *.mp4)')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

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

    Python 代码示例:

    dirpath = QFileDialog.getExistingDirectory(
    				self.ui,
                    '选择音频文件路径',
                    './',
                    QFileDialog.Option.ShowDirsOnly)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    3、Public Functions

    pass

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

  • 相关阅读:
    ERP生产作业控制
    CVPR 2022 Oral 大连理工提出的SCI 快速、超强的低光照图像增强方法 亲测效果
    uni-app App端优化
    【附源码】Python计算机毕业设计美食菜谱网站
    PHP 5 MySQLi 函数
    Git获取执行结果并自动化merge提交
    【大语言模型】ACL2024论文-03 MAGE: 现实环境下机器生成文本检测
    在PicGo上使用github图床解决typora上传csdn图片不显示问题(保姆级教程)
    Hystrix熔断降级
    基于工业智能网关的PLC远程控制解决方案
  • 原文地址:https://blog.csdn.net/m0_56208280/article/details/133956454