我想在静态方法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)
答案 0 :(得分:1)
如果将静态函数与本机文件对话框一起使用,则无法执行此操作。
本机文件对话框没有与Qt文件对话框相同的API,因此您只能通过静态函数参数设置可用的属性 - 这意味着标题,标题,工作目录,过滤器,和options。
静态函数或多或少匹配各种file modes:
AnyFile = getSaveFileName
ExistingFile = getOpenFileName
Directory = getExistingDirectory
ExistingFiles = getOpenFileNames
使用静态函数时,ShowDirsOnly
选项仅适用于getExistingDirectory
。但在Windows上,这将打开本机“浏览文件夹”对话框(除非您设置DontUseNativeDialog
选项),因此ShowDirsOnly
选项将是多余的。
当使用静态函数时,目前无法为本机对话框设置ViewMode
,对于QFileDialog
特定的所有其他API也是如此。
长话短说:如果你想要更多地控制文件对话框,请使用内置的Qt - 这就是它的用途。