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

How to use options in QFileDialog.getOpenFileName?

我想在静态方法中使用选项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 专业版, Python 3.4.0, PySide 1.2.2)

如果您将静态函数与本机一起使用,则无法执行此操作 file-dialog。

原生 file-dialogs 与 Qt file-dialog 没有相同的 API,因此您只能通过静态函数参数设置可用的属性 - 这意味着标题、标题、working-directory、过滤器和 options.

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

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

使用静态函数时,ShowDirsOnly 选项仅适用于 getExistingDirectory。但是在 Windows 上,这将打开本机 "Browse For Folder" 对话框(除非您设置 DontUseNativeDialog 选项),因此 ShowDirsOnly 选项将是多余的。

目前无法在使用静态函数时为 native-dialog 设置 ViewMode,对于 API 特定的所有其他 API 也是如此=16=].

Long-story 简而言之:如果您想对 file-dialog 进行更多控制,请使用 built-in Qt one - 这就是它的用途。