仅选择带有QFileDialog [PyQT]的文件

时间:2014-10-24 12:05:19

标签: qt pyqt qfiledialog

我正在尝试在PyQT中使用QFileDialog小部件,以获取文件的名称以保存结果。我正在使用方法QFileDialog.getSaveFileName(),并且正如预期的那样,如果我选择一个现有文件,则会出现一个警告框,指出该文件存在并提供覆盖它的可能性。但问题是,如果我选择一个目录而不是常规文件,则会显示相同的警告框,就好像它是一个普通文件一样。我不喜欢这种行为,我想要一个警告框,通知有一个目录,它无法选择,或者可能在选择常规文件之前禁用OK按钮。有可能吗?如果有可能,我怎么能这样做?

由于

1 个答案:

答案 0 :(得分:1)

静态函数将打开 native 对话框,除非您使用options参数设置DontUseNativeDialog,在这种情况下,您将获得内置的Qt文件对话框:

    path = QFileDialog.getSaveFileName(options=QFileDialog.DontUseNativeDialog)

内置对话框通常更快,并且通常比原生对话框具有更明智的行为。特别是,如果您单击某个目录,保存按钮将变为打开按钮,因此永远无法选择目录。

如果您绝对必须拥有原生对话框,则可以尝试设置DontConfirmOverwrite选项。这将允许您在对话框关闭后自行处理任何可能的覆盖。