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程序设计入门(5)类的使用简介
Jun 16 Python
在Linux下调试Python代码的各种方法
Apr 17 Python
有趣的python小程序分享
Dec 05 Python
Django学习笔记之ORM基础教程
Mar 27 Python
python3实现磁盘空间监控
Jun 21 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
python退出循环的方法
Jun 18 Python
Python爬虫设置ip代理过程解析
Jul 20 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 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
thinkphp四种url访问方式详解
2014/11/28 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
CI框架表单验证实例详解
2016/11/21 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
js中less常用的方法小结
2017/08/09 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
汽车检测与维修专业求职信
2013/10/30 职场文书
大四学生毕业自荐信
2013/11/07 职场文书
战略合作意向书
2014/07/29 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
摘录式读书笔记
2015/07/01 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
创业计划书之养殖业
2019/10/11 职场文书
利用python做表格数据处理
2021/04/13 Python
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers