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 相关文章推荐
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
python os.path模块常用方法实例详解
Sep 16 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
解决pycharm运行时interpreter为空的问题
Oct 29 Python
Python构建图像分类识别器的方法
Jan 12 Python
详解Python传入参数的几种方法
May 16 Python
Django处理Ajax发送的Get请求代码详解
Jul 29 Python
python 协程 gevent原理与用法分析
Nov 22 Python
python可视化text()函数使用详解
Feb 11 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
python实现视频压缩功能
Dec 18 Python
解决numpy数组互换两行及赋值的问题
Apr 17 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中动态变量用法实例
2015/06/10 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
python 实现插入排序算法
2012/06/05 Python
python实现保存网页到本地示例
2014/03/16 Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
2016/11/02 Python
python 读写中文json的实例详解
2017/10/29 Python
python编写分类决策树的代码
2017/12/21 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
python如何获取apk的packagename和activity
2020/01/10 Python
Python实现对adb命令封装
2020/03/06 Python
如何使用python切换hosts文件
2020/04/29 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
大学生护理专业自荐信
2013/10/03 职场文书
优秀研究生自我鉴定
2013/12/04 职场文书
参赛口号
2014/06/16 职场文书
居安思危观后感
2015/06/11 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android