PYQT笔记——QFileDialog

来源:互联网 发布:mac可以下载爱思助手 编辑:程序博客网 时间:2024/05/16 09:05

环境:python3.4+qt5


QFileDialog类提供了一个供用户选择文件或者目录的对话框。

   创建一个QfileDialog最简单的方法是调用静态函数,就是直接应用平台提供的文件对话框(windows,linux等)。

一,调用静态函数法:

比如说下面的方法openFile是主窗口类里的method:

fileName = QFileDialog.getOpenFileName(self,                                       r'创建Excel并保存',                                       r'F:\Python\201608101\test1\Excel',                                       r'Excel Files(*.xls *.xlsx);;Word Files(*.doc)')

调用后的结果如下:


可以看到参数里有三个QStrng类型的参数,第一个代表弹出对话框的标题;第二是默认的路径,如果空,则默认为当前路径;第三个是代表了过滤器,如果要有多个过滤器的话,可以用”::”分割,如:

r'Excel Files(*.xls *.xlsx);;Word Files(*.doc)'

   得到的fileName就是我们选择的文件和它的路径。

   当然QFile的静态函数有很多,如下面所列,可以根据需要选择


Static Methods

  • QString getExistingDirectory(QWidget parent None,QString caption QString(),QString dir QString(),Options options QFileDialog.ShowDirsOnly)
  • QString getOpenFileName(QWidget parent None,QString caption QString(),QString dir QString(),QString filter QString(),Options options 0)
  • QString getOpenFileName(QWidget parent None,QString caption QString(),QString dir QString(),QString filter QString(),QString selectedFilter None,Options options 0)
  • tuple getOpenFileNameAndFilter(QWidget parent None,QString caption QString(),QString dir QString(),QString filter QString(),Options options 0)
  • QStringList getOpenFileNames(QWidget parent None,QString caption QString(),QString dir QString(),QString filter QString(),Options options 0)
  • QStringList getOpenFileNames(QWidget parent None,QString caption QString(),QString dir QString(),QString filter QString(),QString selectedFilter None,Options options 0)
  • tuple getOpenFileNamesAndFilter(QWidget parent None,QString caption QString(),QString dir QString(),QString filter QString(),Options options 0)
  • QString getSaveFileName(QWidget parent None,QString caption QString(),QString dir QString(),QString filter QString(),Options options 0)
  • QString getSaveFileName(QWidget parent None,QString caption QString(),QString dir QString(),QString filter QString(),QString selectedFilter None,Options options 0)
  • tuple getSaveFileNameAndFilter(QWidget parent None,QString caption QString(),QString dir QString(),QString filter QString(),Options options 0)

通过实验我们发现,上面的对话框基本为模态对话框。

另存为对话框也可以通过静态方法来实现:

fileName = QFileDialog.getSaveFileName(self,                                       r'创建Excel并保存',                                       r'F:\Python\201608101\test1\Excel',                                       r'Excel Files(*.xls *.xlsx);;Word Files(*.doc)')

如下图:


此模式下,会自动判断是否文件名已存在等等。

 

QFile类还为我们提供了自己定制文件对话框的功能。具体请参看帮助文档。



0 0
原创粉丝点击