如何在QFileDialog.getOpenFileName中使用选项?

时间:2015-01-17 11:16:22

标签: python pyqt pyside options qfiledialog

我想在静态方法QFileDialog.getOpenFileName中使用选项。

例如,我想设置两个选项:QFileDialog.ExistingFile和QFileDialog.Detail。

我已阅读此文:http://pyside.github.io/docs/pyside/PySide/QtGui/QFileDialog.html?highlight=getopenfilename#PySide.QtGui.PySide.QtGui.QFileDialog.getOpenFileName 但我不明白我如何使用PySide.QtGui.QFileDialog.Options?

dir = self.sourceDir
filters = "Text files (*.txt);;Images (*.png *.xpm *.jpg)"
selected_filter = "Images (*.png *.xpm *.jpg)"
options = "" # ???
fileObj = QFileDialog.getOpenFileName(self, " File dialog ", dir, filters, selected_filter, options)

如果我使用

    options  = QFileDialog.DirectoryOnly
    options |= QFileDialog.List

它不起作用。

感谢您的帮助!

(Windows 7 64位,PyCharm 3.4.1 Pro,Python 3.4.0,PySide 1.2.2)

enter image description here

1 个答案:

答案 0 :(得分:1)

如果将静态函数与本机文件对话框一起使用,则无法执行此操作。

本机文件对话框没有与Qt文件对话框相同的API,因此您只能通过静态函数参数设置可用的属性 - 这意味着标题,标题,工作目录,过滤器,和options

静态函数或多或少匹配各种file modes

AnyFile = getSaveFileName
ExistingFile = getOpenFileName
Directory = getExistingDirectory
ExistingFiles = getOpenFileNames

使用静态函数时,ShowDirsOnly选项仅适用于getExistingDirectory。但在Windows上,这将打开本机“浏览文件夹”对话框(除非您设置DontUseNativeDialog选项),因此ShowDirsOnly选项将是多余的。

当使用静态函数时,目前无法为本机对话框设置ViewMode,对于QFileDialog特定的所有其他API也是如此。

长话短说:如果你想要更多地控制文件对话框,请使用内置的Qt - 这就是它的用途。