PYQT笔记——QFileDialog

环境: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)')

调用后的结果如下:

PYQT笔记——QFileDialog_第1张图片

可以看到参数里有三个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)')

如下图:

PYQT笔记——QFileDialog_第2张图片

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

 

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



你可能感兴趣的:(Python开发笔记,PYQT)