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备份Mysql脚本
Aug 11 Python
利用Psyco提升Python运行速度
Dec 24 Python
Python语言实现获取主机名根据端口杀死进程
Mar 31 Python
Python装饰器用法示例小结
Feb 11 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
May 29 Python
python简单操作excle的方法
Sep 12 Python
PyCharm代码提示忽略大小写设置方法
Oct 28 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
Dec 05 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
Jul 31 Python
Python获取指定网段正在使用的IP
Dec 14 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 Smarty模板生成html文档的方法
2010/04/12 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
更改Python命令行交互提示符的方法
2015/01/14 Python
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
python抓取京东小米8手机配置信息
2018/11/13 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
python pytest进阶之fixture详解
2019/06/27 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
外贸业务员工作职责
2014/01/06 职场文书
假面舞会策划方案
2014/05/29 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
平遥古城导游词
2015/02/03 职场文书
大学生党课心得体会
2016/01/07 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
解决golang 关于全局变量的坑
2021/05/06 Golang