PyQt5 QFileDialog小工具

PyQt5是一款流行的Python GUI工具包,QFileDialog是PyQt5提供的一个用于选择文件或目录的小工具,它可以让用户从系统中选择一个或多个文件或目录。下面将详细讲解PyQt5 QFileDialog小工具的使用方法。

1. 安装PyQt5

在使用QFileDialog之前,需要先安装PyQt5。如果还没有安装,可以使用pip进行安装:

pip install PyQt5

2. 导入PyQt5库

在代码中导入PyQt5库:

from PyQt5.QtWidgets import QFileDialog, QApplication

3. 创建QApplication

在使用QFileDialog之前,需要先创建QApplication对象:

app = QApplication([])

4. 打开QFileDialog

使用QFileDialog.getOpenFileName方法打开一个文件选择对话框:

filename, _ = QFileDialog.getOpenFileName(None, 'Open file', '', 'Image files (*.jpg *.gif)')

参数说明:

  • None:父窗口,如果是单独的对话框则为None
  • Open file:对话框的标题
  • '':对话框的目录,默认为空,即当前目录
  • 'Image files (*.jpg *.gif)':对话框中展示的文件类型

上述代码会返回两个值:选择的文件路径和文件类型,可以通过“_”忽略掉文件类型:

filename, _ = QFileDialog.getOpenFileName(None, 'Open file', '', 'Image files (*.jpg *.gif)')
print(filename)  # 输出选择的文件路径

类似地,可以使用QFileDialog.getOpenFileNames打开多个文件对话框,如下所示:

filenames, _ = QFileDialog.getOpenFileNames(None, 'Open files', '', 'Image files (*.jpg *.gif)')
print(filenames)  # 输出选择的文件路径列表

还可以使用QFileDialog.getExistingDirectory方法打开一个目录选择对话框:

dirname = QFileDialog.getExistingDirectory(None, 'Select directory', '')
print(dirname)  # 输出选择的目录路径

示例说明

示例1:打开和保存文件

下面是一个用于打开和保存文件的示例代码:

from PyQt5.QtWidgets import QFileDialog, QApplication, QPushButton, QVBoxLayout, QWidget
import os


class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout()

        self.btn_open_file = QPushButton('Open file', self)
        self.btn_open_file.clicked.connect(self.open_file)
        vbox.addWidget(self.btn_open_file)

        self.btn_save_file = QPushButton('Save file', self)
        self.btn_save_file.clicked.connect(self.save_file)
        vbox.addWidget(self.btn_save_file)

        self.setLayout(vbox)
        self.setWindowTitle('File Dialog Example')
        self.show()

    def open_file(self):
        filename, _ = QFileDialog.getOpenFileName(None, 'Open file', '', 'All files (*)')
        if filename:
            print(f'Selected file: {filename}')

    def save_file(self):
        filename, _ = QFileDialog.getSaveFileName(None, 'Save file', '', 'All files (*)')
        if filename:
            print(f'Selected file: {filename}')

if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    app.exec_()

该示例程序中包括了打开和保存文件的按钮,点击打开按钮会弹出文件对话框,选择一个文件后会打印出该文件的路径;点击保存按钮同样会弹出文件对话框,选择一个保存的文件路径后也会将其打印出来。

示例2:打开多个文件

下面是一个用于打开多个文件的示例代码:

from PyQt5.QtWidgets import QFileDialog, QApplication, QPushButton, QVBoxLayout, QWidget
import os


class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout()

        self.btn_open_files = QPushButton('Open files', self)
        self.btn_open_files.clicked.connect(self.open_files)
        vbox.addWidget(self.btn_open_files)

        self.setLayout(vbox)
        self.setWindowTitle('File Dialog Example')
        self.show()

    def open_files(self):
        filenames, _ = QFileDialog.getOpenFileNames(None, 'Open files', '', 'All files (*)')
        if filenames:
            for filename in filenames:
                print(f'Selected file: {filename}')

if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    app.exec_()

该示例程序中只有一个按钮,点击该按钮会弹出打开多个文件对话框,选择一个或多个文件后会逐一将它们的路径打印出来。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 QFileDialog小工具 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • PyQt5 | 如何设置进度条的值

    让我们来详细讲解一下Python中PyQt5库如何设置进度条的值的完整使用攻略: 1. PyQt5进度条简介 在PyQt5中,进度条是一种用于显示任务当前执行进度的控件。进度条通常被用于提示用户任务是否完成、任务需要花费的时间等信息。 2. 使用进度条 PyQt5提供了QProgressBar类实现进度条控件,使用QProgressBar类可以方便地添加进度…

    python 2023年5月10日
    00
  • PyQt5 – 设置固定的高度或宽度的窗口大小

    下面我将详细讲解Python中PyQt5模块中设置固定窗口大小的方法。 窗口大小设置方法 方法一:使用 setFixedSize() 方法设置固定大小 setFixedSize() 方法可以用于设置窗口大小固定,不能被用户改变。 from PyQt5.QtWidgets import QApplication, QWidget import sys if _…

    python 2023年5月11日
    00
  • PyQt5 QSpinBox – 如何通过字体获得被隐藏的文本

    PyQt5是一种基于Python的GUI应用程序框架,它包含了众多的界面元素,其中QSpinBox是一个用于输入数字的小部件。在这篇文章中,我将会给大家介绍如何通过字体获得被隐藏的文本。下面是详细的使用攻略。 安装PyQt5 首先,在使用PyQt5 QSpinBox前,我们需要先安装PyQt5。在命令行输入以下命令即可完成安装: pip install Py…

    python 2023年5月12日
    00
  • PyQt5 QCalendarWidget 设置背景角色

    PyQt5是一个流行的Python GUI库,其中QCalendarWidget是一个用于显示日历的小部件。本文将介绍如何使用QCalendarWidget设置自定义的背景角色。 设置背景角色 QCalendarWidget中的背景色跟日期无关,并且默认情况下为白色。但是我们可以使用setStyleSheet()方法来为QCalendarWidget设置自定…

    python 2023年5月12日
    00
  • PyQt5 QCalendarWidget 将焦点转移到下一个孩子身上

    下面是关于Python的PyQt5 QCalendarWidget将焦点转移到下一个孩子身上的完整使用攻略。 1. PyQt5 QCalendarWidget将焦点转移到下一个孩子身上 QCalendarWidget是PyQt5中一个日历控件,它可以用于选择日期。当用户点击或使用键盘选择一个日期时,该控件会获得焦点并显示所选日期。 然而,当用户使用键盘选择日…

    python 2023年5月12日
    00
  • PyQt5 QSpinBox – 当鼠标悬停在下降按钮上时为其添加背景色

    当我们使用 PyQt5 来开发 GUI 应用程序时,QSpinBox 是一种非常常见的控件。 QSpinBox 是一种用于显示数字值的微调框。它可以让用户通过鼠标向上或向下滚动来更改数值。在本次攻略中,我们将学习如何为 QSpinBox 控件添加背景颜色。 创建基本的 QSpinBox 首先,我们需要使用 Python3 和 PyQt5 安装库。我们可以使用…

    python 2023年5月13日
    00
  • PyQt5 – Label | setWhatsThis()方法的帮助文本是什么

    PyQt5是一个面向Python开发者的GUI开发框架,其Label组件提供了setWhatsThis()方法来设置帮助文本,下面是setWhatsThis()方法的完整使用攻略: 方法简介 setWhatsThis()方法是QLabel类的一种方法,它用于设置帮助文本,可以在显示帮助文本的时候,让用户快速了解某个控件的作用。 方法语法 QLabel.set…

    python 2023年5月11日
    00
  • PyQt5 QSpinBox – 转储对象树

    PyQt5是Python的一个GUI编程框架,提供了众多的UI控件,其中包括QSpinBox控件。QSpinBox是一个能够自动绑定到整型变量的数字输入框控件,而转储对象树则是指将控件以树的形式展示出来,非常方便查看控件的嵌套和层次关系。本文将详细讲解PyQt5 QSpinBox控件的使用及如何使用转储对象树进行布局。 安装PyQt5 首先需要安装PyQt5…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部