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读写ini文件的方法
May 28 Python
python smtplib发送带附件邮件小程序
May 22 Python
python和pygame实现简单俄罗斯方块游戏
Feb 19 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
Pandas 解决dataframe的一列进行向下顺移问题
Dec 27 Python
详解Python的三种拷贝方式
Feb 11 Python
python导入库的具体方法
Jun 18 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
Sep 29 Python
python快速安装OpenCV的步骤记录
Feb 22 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中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
2016/07/05 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
vue watch监控对象的简单方法示例
2021/01/07 Vue.js
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
Python实现针对中文排序的方法
2017/05/09 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
Python基本语法之运算符功能与用法详解
2019/10/22 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
python3 字符串知识点学习笔记
2020/02/08 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
银行门卫岗位职责
2013/12/29 职场文书
三年大学自我鉴定
2014/01/16 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python