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多线程编程(四):使用Lock互斥锁
Apr 05 Python
轻松掌握python设计模式之访问者模式
Nov 18 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
django项目搭建与Session使用详解
Oct 10 Python
python sort、sort_index方法代码实例
Mar 28 Python
python and or用法详解
Jun 26 Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 Python
python递归下载文件夹下所有文件
Aug 31 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
Python中顺序表原理与实现方法详解
Dec 03 Python
使用python求解二次规划的问题
Feb 29 Python
Selenium 安装和简单使用的实现
Dec 04 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自动生成月历代码
2006/10/09 PHP
PHP 中的批处理的实现
2007/06/14 PHP
php下使用curl模拟用户登陆的代码
2010/09/10 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
php数组编码转换示例详解
2014/03/11 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
js获取url参数的使用扩展实例
2007/12/29 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
windows下python安装小白入门教程
2018/09/18 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
python遍历路径破解表单的示例
2020/11/21 Python
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
酒店保安员岗位职责
2014/01/31 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
工作岗位说明书模板
2014/05/09 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL
解决Oracle数据库用户密码过期
2022/05/11 Oracle