博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PyQt5之QFileDialog
阅读量:3958 次
发布时间:2019-05-24

本文共 1916 字,大约阅读时间需要 6 分钟。

PyQt5之QFileDialog

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

一、QFileDialog类中的常用方法

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

二、QFileDialog的使用

import sysfrom 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对话框的标题、第三个参数是对话框显示时默认打开的目录、第四个参数是对话框中文扩展名的过滤器。“.”代表程序运行目录,“/”代表当前盘下的根目录,需要注意的是不同平台下路径的显示方式可能不同。

运行结果如下:

在这里插入图片描述

转载地址:http://avozi.baihongyu.com/

你可能感兴趣的文章
SSM结合Redis
查看>>
优化数据库的八种方法
查看>>
Java Web服务收到请求时线程的情况以及session情况
查看>>
SSM配置文件信息加密实现
查看>>
@Produces注解
查看>>
谈谈序列化—实体bean一定要实现Serializable接口?
查看>>
实用小技巧之电脑如何滚动截屏/截取长图
查看>>
Eclipse离线安装Java Decompiler插件
查看>>
Http预请求options
查看>>
未来设计师的工作模式?从室内设计领域的实时设计说起 | Mixlab趋势
查看>>
智能设计 | MixAI 知识库 No.69
查看>>
通过研究微信文章的相关推荐逻辑 ,尝试生成指南| Mixlab设计黑客
查看>>
浏览器低成本实现免手提的用户体验,使用人脸、手势、姿态追踪 | Mix群聊
查看>>
这个世界上肯定有另一个我,做着我不敢做的事,过着我想过的生活 | MixAI 知识库 No.70...
查看>>
表情包数据挖掘 | Mix群聊
查看>>
如何阅读科研论文
查看>>
理解本真的REST架构风格
查看>>
10款免费且开源的项目管理工具
查看>>
java调用javascript :js引擎rhino
查看>>
asp 中常用的文件处理函数
查看>>