【发布时间】:2016-07-27 22:29:44
【问题描述】:
我正在使用以下代码创建自己的自定义文件对话框:
file_dialog = QtGui.QFileDialog()
file_dialog.setFileMode(QtGui.QFileDialog.Directory)
file_dialog.setViewMode(QtGui.QFileDialog.Detail)
file_dialog.setOption(QtGui.QFileDialog.DontUseNativeDialog, True)
我感兴趣的行为是让用户能够查看文件和文件夹,但只能选择文件夹。 (使文件无法选择)。那可能吗?
注意:
使用 DirectoryOnly 选项对我不利,因为它不允许您查看文件,只能查看文件夹。
编辑(我忘记添加的额外代码负责能够选择多个文件夹而不仅仅是一个):
file_view = file_dialog.findChild(QtGui.QListView, 'listView')
if file_view:
file_view.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
f_tree_view = file_dialog.findChild(QtGui.QTreeView)
if f_tree_view:
f_tree_view.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
【问题讨论】:
-
您发布的代码完全符合您的要求(即用户可以查看文件和目录,但只能选择目录)。所以也许你需要更清楚地解释你想要实现的目标。
-
不是真的.. 上面的代码也允许您选择文件。
-
对我来说,“选择”按钮只有在我选择目录时才会启用。可以选择文件,但不能选择它们(因为按钮被禁用)。
-
这有点尴尬,但我刚刚发现还有另一段代码对此负责。这是一个允许我选择多个文件夹而不仅仅是一个文件夹的代码 - 但它这样做的同时也给了我我提到的问题。我用该代码编辑了我的原始帖子。
-
查看我的最后评论;)
标签: python qt pyqt qfiledialog