首页 PyQt5教程 PyQt5 QFileDialog文件选择对话框常用API方法举例详解
pay pay
教程目录

PyQt5 QFileDialog文件选择对话框常用API方法举例详解

日期: 四月 29, 2023, 10:44 a.m.
栏目: PyQt5教程
阅读: 166
作者: Python自学网-村长

摘要: QFileDialog是一个用于在应用程序中选择文件或目录的Qt控件基类。以下是QFileDialog类的一些常用API及其说明:

QFileDialog是一个用于在应用程序中选择文件或目录的Qt控件基类。以下是QFileDialog类的一些常用API及其说明:

一、构造函数

QFileDialog(QWidget *parent = nullptr, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString())

构造一个新的文件选择对话框,父窗口为parent,标题为caption,初始目录为directory,过滤器为filter。

二、基本属性

  • setDirectory(const QString &directory):设置文件选择对话框的初始目录
  • setNameFilter(const QString &filter):设置文件选择对话框的过滤器
  • setFileMode(QFileDialog::FileMode mode):设置文件选择对话框的文件选择模式
  • setViewMode(QFileDialog::ViewMode mode):设置文件选择对话框的显示模式
  • setOptions(QFileDialog::Options options):设置文件选择对话框的选项

三、基本方法

  • getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = QFileDialog::Options()):显示打开文件对话框,并返回所选文件的路径。
  • getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = QFileDialog::Options()):显示打开多个文件对话框,并返回所选文件的路径列表。
  • getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = QFileDialog::Options()):显示保存文件对话框,并返回所选文件的路径。

以下是一个简单的示例,演示了如何使用QFileDialog来创建一个简单的文件选择对话框:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QFileDialog, QVBoxLayout

class FileDialogDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("File Dialog Demo")
        self.label = QLabel("No file selected.")
        self.button = QPushButton("Select File")
        self.button.clicked.connect(self.showFileDialog)
        layout = QVBoxLayout()
        layout.addWidget(self.label)
        layout.addWidget(self.button)
        self.setLayout(layout)

    def showFileDialog(self):
        filename, _ = QFileDialog.getOpenFileName(self, "Open File", "", "All Files (*);;Text Files (*.txt)")
        if filename:
            self.label.setText("Selected file: {}".format(filename))

app = QApplication(sys.argv)
dialog = FileDialogDemo()
dialog.show()
sys.exit(app.exec_())

在这个示例中,我们创建了一个名为FileDialogDemo的自定义窗口类,它包含一个标签和一个按钮。当点击按钮时,会显示文件选择对话框,并将用户选择的文件路径应用于标签的文本。在showFileDialog方法中,我们调用QFileDialog.getOpenFileName方法来显示文件选择对话框,并指定过滤器以限制用户只能选择特定类型的文件。getOpenFileName方法返回一个元组,其中第一个元素是所选文件的路径,第二个元素是所选文件类型的过滤器。在示例中,我们将第二个元素忽略,并将所选文件的路径应用于标签的文本。

除了getOpenFileName方法之外,QFileDialog还提供了其他几种方法来显示文件选择对话框,例如getOpenFileNames和getSaveFileName。这些方法的参数和用法与getOpenFileName类似,只是它们分别返回所选文件的路径列表和保存文件的路径。例如,我们可以使用以下代码来创建一个保存文件对话框:

filename, _ = QFileDialog.getSaveFileName(self, "Save File", "", "Text Files (*.txt)")
if filename:
    with open(filename, "w") as f:
        f.write("Hello, world!")

在这个示例中,我们创建了一个保存文件对话框,并在用户选择保存的文件后将一个简单的字符串写入该文件中。

这些仅仅是QFileDialog的基础知识,QFileDialog还有很多其他的API和选项,可以通过Qt文档进一步了解。

部分文字内容为【Python自学网】原创作品,转载请注明出处!视频内容已申请版权,切勿转载!
回顶部