QFileDialog 文件对话框

文章目录

  • 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.QtWidgets 的模块中。
QFileDialog 文件对话框_第1张图片

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)

QFileDialog 文件对话框_第2张图片

3、Public Functions

pass

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

你可能感兴趣的:(PyQt5,pyqt,qt5,python)