如果选择更改,QFileDialog将提示覆盖

时间:2016-12-20 22:18:18

标签: qt pyqt qfiledialog

我希望QFileDialog仅在选择更改时才提示覆盖确认。有没有办法实现这个目标?

目前,我收到的保存文件名如下:

data_file_name = QtGui.QFileDialog.getSaveFileName(self, "Data File", selected, self.FILTER_DATA_FILE)

如果我正在重新保存打开的项目,selected是项目文件的名称。如果我正在创建新项目,selected是用户最近保存项目的目录的名称。如果我输入的文件名不存在(无论selected的值如何),我都不会根据需要提示确认。但是,如果所选名称是存在的文件,也不管selected的值如何,我总是会被提升以进行确认。我想要以下行为:

  1. 如果对话框有默认选择且用户未更改此选择,请不要提示确认。
  2. 否则,如果用户输入的文件名目前不存在,请不要提示确认。
  3. 否则提示确认。 (如果用户输入空字符串作为文件名,我并不特别在意。)
  4. 我目前正在使用Qt 4,但我不反对升级到Qt 5,如果这会让我的生活更轻松。

1 个答案:

答案 0 :(得分:0)

看起来我想要的是不可能的:QFileDialog::accept()没有为这种自定义提供任何机制。我必须在对话框中禁用覆盖确认并自己实现该逻辑。