让文件对话框只接受目录

5 投票
3 回答
6266 浏览
提问于 2025-04-15 21:45

我想要一个文件对话框,只允许选择文件夹,这里是我尝试的代码:

fileDialog = QtGui.QFileDialog()
fileDialog.setFileMode(QtGui.QFileDialog.ShowDirsOnly)
filename = fileDialog.getOpenFileName(self, 'Select USB Drive Location'))

3 个回答

1

Qt 4.6的文档中关于ShowDirsOnly的说明是:

“在文件对话框中只显示目录。默认情况下,文件和目录都会显示。(这仅在目录文件模式下有效。)”

也许它不是在“目录”文件模式下呢?

6

这是个老问题,我知道,但也许这能帮助到其他人。

在你用来显示文件框的方法里,使用下面这段代码:

dialog = QtGui.QFileDialog(self)
dialog.setFileMode(QtGui.QFileDialog.Directory)
dialog.setOption(QtGui.QFileDialog.ShowDirsOnly, True)

if dialog.exec_():
    for d in dialog.selectedFiles():
        print d
6

我想要的是:

directory = QtGui.QFileDialog.getExistingDirectory(self, 'Select USB Drive Location')

撰写回答