PyQt5之QFileDialog

PyQt5之QFileDialog

QFileDialog是用于打开和保存文件的标准对话框,QFileDialog在打开文件时使用了文件过滤器,用于显示指定扩展名的文件。也可以设置使用QFileDialog打开文件时的起始目录和指定扩展名的文件。

一、QFileDialog类中的常用方法

方法描述
getOpenFileName()返回用户所选择的文件名称,并打开该文件
getSaveFileName()使用用户选择的文件名保存文件
setFilter()设置过滤器,只显示过滤器允许的文件类型
setFileMode()可以选择文件的类型,枚举常量是:QFileDialog.AnyFile(任何文件)、QFileDialog.ExistingFile(已存在的文件)、QFileDialog.Directory (文件目录)、QFileDialog.ExistingFiles (已经存在的多个文件)

二、QFileDialog的使用

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class Win(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(200, 200, 400, 400)
        self.setWindowTitle('QFileDialog的使用')

        self.btn1 = QPushButton('加载图片')
        self.btn1.clicked.connect(self.getFile)

        self.label = QLabel('')

        self.btn2 = QPushButton('加载文本文件')
        self.btn2.clicked.connect(self.getFiles)

        self.text = QTextEdit()

        layout = QVBoxLayout()
        layout.addWidget(self.btn1)
        layout.addWidget(self.label)
        layout.addWidget(self.btn2)
        layout.addWidget(self.text)
        self.setLayout(layout)

    def getFile(self):
        fname ,_ = QFileDialog.getOpenFileName(self,'Open File','d:\\Python--PyQt5--Eric6','Image files (*.jpg)')
        self.label.setPixmap(QPixmap(fname))
    def getFiles(self):
        dlg = QFileDialog()
        dlg.setFileMode(QFileDialog.AnyFile)
        dlg.setFilter(QDir.Files)
        if dlg.exec_():
            filenames = dlg.selectedFiles()
            f = open(filenames[0],'r')
            with f:
                data = f.read()
                self.text.setText(data)
if __name__ == "__main__":
    app = QApplication(sys.argv)
    form = Win()
    form.show()
    sys.exit(app.exec_())

代码分析:第一个按钮用来调用文件对话框显示图片,在QFileDialog.getOpenFileName()函数中第一个参数用于指定父组件、第二个参数是QFileDialog对话框的标题、第三个参数是对话框显示时默认打开的目录、第四个参数是对话框中文扩展名的过滤器。“.”代表程序运行目录,“/”代表当前盘下的根目录,需要注意的是不同平台下路径的显示方式可能不同。

运行结果如下:

在这里插入图片描述

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值