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中列表元素连接方法join用法实例
Apr 07 Python
Python文件去除注释的方法
May 25 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
总结python中pass的作用
Feb 27 Python
python实现高斯判别分析算法的例子
Dec 09 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
Python API len函数操作过程解析
Mar 05 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
深入浅析Django MTV模式
Sep 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并发对MYSQL造成压力的解决方法
2013/02/21 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
PHP getName()函数讲解
2019/02/03 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
javascript multibox 全选
2009/03/22 Javascript
javascript获取元素偏移量的方法有哪些
2014/06/24 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
python判断数字是否是超级素数幂
2018/09/27 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
教育技术职业规划范文
2014/03/04 职场文书
灰雀教学反思
2014/04/28 职场文书
新党章心得体会
2014/09/04 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
2014和解协议书范文
2014/09/15 职场文书
学校联谊协议书
2014/09/16 职场文书
学习普通话的体会
2014/11/07 职场文书
农村结婚典礼主持词
2015/06/29 职场文书