QT保存文件时选在保存不同的文件类型

转载自:http://blog.sina.com.cn/s/blog_13188028b0102vffv.html

PS:原作者使用PYQT实现的,代码很简单,照猫画虎,明白这个意思,用C++也就知道怎么做了

我们知道在Windows中,文件保存是可通过下拉菜单选择保存的格式。如Excel文件点击“另存为”后格式选择如下:
在python编程中,GUI的设计中如何利用Pyqt类似实现这种选择保存格式的功能呢?
      首先简单看一下Pyqt.QtGui.QFileDialog类,该类为用户提供了可以选择文件和目录的dialog。用户可以利用该类提供的一些函数实现打开,保存,过滤(通过指定文件格式,后缀)等功能,同时利用该类提供的默认GUI可以更简单,更规范化的实现打开保存等dialog功能。其包含的函数很多,如directory(), filter(), selectFile(), setFilter(), open(), setOption()等等,其具体功能可以看相关tutorial, 部分功能可参考http://doc.qt.io/qt-4.8/qfiledialog.html。这里主要介绍一下它的静态函数(static function).

      QFileDialog包含的静态函数如下:getExistingDirectory(), getOpenFileName(),  getOpenFileNames(), getSaveFileName(),getSaveFileNameAndFilter() 等,这些静态函数极方便的为用户创建特定的模型化dialog. 如getExistingDirectory()返回用户指定的已存在目录,getSaveFileName()在文件保存时,返回保存对应dialog,可以让用户输入保存文件名,手动选择目录。getSaveFileNameAndFilter() 增加对文件格式筛选,文件保存格式的挑选等,具体如何实现,见下实例。

      实例:FreeROI软件对文件另存为时,缺少格式选择性过程,点击格式选择按钮,只有Nifti files一种选项(即只有默认的.nii.gz格式),如何在默认dialog添加格式选择功能?

添加前“另存为”相关代码如下:

from PyQt4.QtGui import *


标剪头处为强制添加的.nii.gz格式语句,和QFileDialog.getSaveFileName()调用默认另存为dialog语句。具体函数内各个参数的定义,可以网上很好的搜到或直接看相关tutorial,其dialog显示如下:

为了实现对格式的选择,我们对QFileDialog.getSaveFileName()进行了修改,利用getSaveFileNameAndFilter() 在不改变默认dialog的情况下实现格式选择,代码如下:


实现后的效果如下,通过对“另存为”的测试,实现了对.nii和.nii.gz格式保存中的选择性过程:


总结:QFileDialog提供了便捷的对文件操作性dialog. 其中getSaveFileNameAndFilter()在保存过程中能够简单的实现对文件格式的选择性过程。
     

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值