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脚本抓取网络小说来制作自己的阅读器
Aug 20 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
Feb 19 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
浅谈Python生成器generator之next和send的运行流程(详解)
May 08 Python
Python模拟随机游走图形效果示例
Feb 06 Python
python3实现随机数
Jun 25 Python
python实现浪漫的烟花秀
Jan 30 Python
Python面向对象思想与应用入门教程【类与对象】
Apr 12 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
keras导入weights方式
Jun 12 Python
虚拟机下载python是否需要联网
Jul 27 Python
Python排序函数的使用方法详解
Dec 11 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+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
利用python提取wav文件的mfcc方法
2019/01/09 Python
django连接oracle时setting 配置方法
2019/08/29 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
高中化学教学反思
2014/01/13 职场文书
法律七进实施方案
2014/03/15 职场文书
消防安全承诺书
2014/05/22 职场文书
五四演讲稿范文
2014/09/03 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
2014年学校财务工作总结
2014/12/06 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
大学四年个人总结
2015/03/03 职场文书
2015年仓库工作总结
2015/04/09 职场文书
答辩状格式范本
2015/05/22 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python