PyQt6 QFileDialog文件对话框控件

发布时间:2023年12月18日

锋哥原创的PyQt6视频教程:

2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计49条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装与配置、第3讲 PyQt6第一个程序HelloWorld实现等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV11C4y1P7fj/

PyQt6中的文件对话框使用QFileDialog类表示,该类继承自QDialog类,它允许用户选择文件或者文件夹,也允许用户遍历文件系统,以便选择一个或多个文件或者文件夹。

QFileDialog类的常用方法:

方法说明
getOpenFileName()获取一个打开文件的文件名
getOpenFileNames()获取多个打开文件的文件名
getSaveFileName()获取保存的文件名
getExistingDirectory()获取一个打开的文件夹
setAcceptMode()设置接收模式,取值如下。 QFileDialog.AcceptOpen:设置文件对话框为打开模式,这是默认值; OFileDialog.AcceptSave:设置文件对话框为保存模式
setDefaultSuffix()设置文件对话框中的文件名的默认后缀名
setFileMode()设置可以选择的文件类型,取值如下。 QFileDialog.FileMode.AnyFile:任意文件(无论文件是否存在)﹔ QFileDialog.FileMode.ExistingFile:已存在的文件; QFileDialog.FileMode.ExistingFiles:已存在的多个文件; QFileDialog.FileMode.Directory:文件夹; QFileDialog.FileMode.DirectoryOnly:文件夹(选择时只能选中文件夹)
setDirectory()设置文件对话框的默认打开位置
setNameFilter()设置名称过滤器,多个类型的过滤器之间用两个分号分割(例如:所有文件(.);Python文件(.py))﹔而一个过滤器中如果有多种格式,可以用空格分割(例如:图片文件(.jpg .png.bmp))
setViewMode()设置显示模式,取值如下。 QFileDialog.Detail:显示文件详细信息,包括文件名、大小、日期等信息; QFileDialog.List:以列表形式显示文件名
selectedFile()获取选择的一个文件或文件夹名字
selectedFiles()获取选择的多个文件或文件夹名字

UI生成代码:

from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(566, 438)
        self.pushButton = QtWidgets.QPushButton(parent=Form)
        self.pushButton.setGeometry(QtCore.QRect(210, 180, 75, 23))
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pushButton.setText(_translate("Form", "选择文件"))

Main测试代码:

"""
    python加载ui文件
    作者 : 小锋老师
    官网 : www.python222.com
"""
import sys

from PyQt6.QtWidgets import QApplication, QPushButton, QFileDialog
from PyQt6 import uic


def selectFile():
    fd = QFileDialog()
    fd.setFileMode(QFileDialog.FileMode.ExistingFiles)  # 设置多选
    fd.setDirectory('C:\\')  # 设置初始化路径
    fd.setNameFilter('图片文件(*.jpg *.png *.bmp *.ico *.gif)')  # 设置只选择图片文件
    if fd.exec():  # 执行
        print(fd.selectedFiles())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = uic.loadUi("./QFileDialog文件对话框控件.ui")
    pushButton: QPushButton = ui.pushButton
    pushButton.clicked.connect(selectFile)
    ui.show()

    sys.exit(app.exec())

文章来源:https://blog.csdn.net/caoli201314/article/details/135056556
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。