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使用BeautifulSoup库解析HTML基本使用教程
Mar 31 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
Jun 16 Python
python获取指定时间差的时间实例详解
Apr 11 Python
python中如何使用正则表达式的非贪婪模式示例
Oct 09 Python
Python+selenium实现截图图片并保存截取的图片
Jan 05 Python
基于python内置函数与匿名函数详解
Jan 09 Python
ubuntu安装mysql pycharm sublime
Feb 20 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
浅析python标准库中的glob
Mar 13 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 Python
如何用 Python 处理不平衡数据集
Jan 04 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 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中uploaded_files函数使用方法详解
2011/03/09 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
Python数据结构之Array用法实例
2014/10/09 Python
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
[原创]Python入门教程4. 元组基本操作
2018/10/31 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
优秀演讲稿范文
2013/12/29 职场文书
办理信用卡工作证明
2014/01/11 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
学生安全责任书
2014/04/15 职场文书
一分钟演讲稿
2014/04/30 职场文书
人事专员岗位说明书
2014/07/29 职场文书
田径运动会通讯稿
2014/09/13 职场文书
教师个人自我评价
2015/03/04 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书