PyQt打开保存对话框的方法和使用详解


Posted in Python onFebruary 27, 2019

PyQt之打开保存对话框(QFileDialog)的方法和使用

一、控件说明

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

二、QFileDialog类的常用方法

getOpenFileName():

返回用户所选择文件的名称并打开该文件

getSaveFileName():

使用用户选择的文件名并保存文件
例:QFileDialog.getOpenFileName(self,‘open file',‘D:\',‘Image files(*.jpg *.png)')

  • 第一个参数是指定父窗口
  • 第二个参数是标题
  • 第三个是默认打开目录,使用.代表当前目录
  • 第四个是文件扩展名过滤器表示只能显示扩展名为.jpg和.png的文件

setFileMode():

可以选择的文件类型,没举型常量:
QFileDialog.AnyFile-任何文件
QFileDialog.ExistingFile-已存在的文件
QFileDialog.Directory-文件目录
QFileDialog.ExistingFiles-已存在的多个文件

setFilter():

设置过滤器,只显示过滤器允许的文件类型

三、应用举例

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class filedalogdemo(QWidget):
 def __init__(self,parent=None):
  super(filedalogdemo,self).__init__(parent)
  layout=QVBoxLayout()

  self.btn=QPushButton("加载图片")
  self.btn.clicked.connect(self.getfile)
  layout.addWidget(self.btn)
  self.le=QLabel("")
  layout.addWidget(self.le)
  self.btn1=QPushButton("加载文本文件")
  self.btn1.clicked.connect(self.getfiles)
  layout.addWidget(self.btn1)
  self.text=QTextEdit()
  layout.addWidget(self.text)
  self.setLayout(layout)
  self.setWindowTitle("File Dialog例子")
 def getfile(self):
  fname,_=QFileDialog.getOpenFileName(self,'打开文件',"D:\\","Image files(*.jpg *.gif)")
  self.le.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)
 win=filedalogdemo()
 win.show()
 sys.exit(app.exec_())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python计算圆周率pi的方法
Jul 11 Python
Python入门之后再看点什么好?
Mar 05 Python
实践Vim配置python开发环境
Jul 02 Python
Sanic框架应用部署方法详解
Jul 18 Python
python保存文件方法小结
Jul 27 Python
Python3爬虫学习入门教程
Dec 11 Python
使用Python完成15位18位身份证的互转功能
Nov 06 Python
python实现连续变量最优分箱详解--CART算法
Nov 22 Python
Python3直接爬取图片URL并保存示例
Dec 18 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
Feb 11 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 Python
python中嵌套函数的实操步骤
Feb 27 #Python
python把1变成01的步骤总结
Feb 27 #Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 #Python
学习python的前途 python挣钱
Feb 27 #Python
scrapy-redis的安装部署步骤讲解
Feb 27 #Python
python三引号输出方法
Feb 27 #Python
浅析python的Lambda表达式
Feb 27 #Python
You might like
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
python原始套接字编程示例分享
2014/02/21 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
Python流程控制 while循环实现解析
2019/09/02 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
Django 解决由save方法引发的错误
2020/05/21 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
介绍一下#error预处理
2015/09/25 面试题
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
辞职信范文大全
2015/03/02 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书