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 相关文章推荐
Django基础之Model操作步骤(介绍)
May 27 Python
Python编程之gui程序实现简单文件浏览器代码
Dec 08 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
Python如何用filter函数筛选数据
Mar 05 Python
浅析python 动态库m.so.1.0错误问题
May 09 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
通俗讲解python 装饰器
Sep 07 Python
python通过opencv调用摄像头操作实例分析
Jun 07 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 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中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
8个PHP数组面试题
2015/06/23 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
JS往数组中添加项性能分析
2015/02/25 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
微信小程序webSocket的使用方法
2020/02/20 Javascript
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
Django实现跨域请求过程详解
2019/07/25 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
IRO美国官网:法国服装品牌
2018/03/06 全球购物
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
美国手机支架公司:PopSockets
2019/11/27 全球购物
水务局局长岗位职责
2013/11/28 职场文书
幼儿园教学管理制度
2014/02/04 职场文书
新年主持词
2014/03/27 职场文书
同居协议书范本
2014/04/23 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
高中班长竞选稿
2015/11/20 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书