2016-12-20 3 views
0

Я бы хотел, чтобы QFileDialog запрашивал подтверждение перезаписывания , только если выбор был изменен. Есть ли способ достичь этого?QFileDialog запрос на перезапись при изменении выбора

В настоящее время я получаю сохранить имя файла следующим образом:

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

Если я повторно сохранения открытого проекта, selected это имя файла проекта. Если я создаю новый проект, selected - это имя каталога, в котором пользователь недавно сохранил проект. Если я введу имя файла, которого не существует (независимо от значения selected), я не получаю запрос на подтверждение, если это необходимо. Однако, если выбранное имя является файлом, который существует, также независимо от значения selected, я всегда получаю подтверждение за подтверждение. Я бы хотел:

  1. Если диалоговое окно имеет выбор по умолчанию, и пользователь не изменяет этот выбор, не запрашивайте подтверждение.
  2. Иначе, если пользователь вводит имя файла, которое в настоящее время не существует, не запрашивайте подтверждение.
  3. Else запрос для подтверждения. (Мне не особо интересно, что произойдет, если пользователь вводит пустую строку в качестве имени файла.)

В настоящее время я использую Qt 4, хотя я не против обновления до Qt 5, если это сделает моя жизнь проще.

ответ

0

Похоже, что я хочу не возможно: QFileDialog::accept() не предоставляет никаких механизмов для такого рода настройки. Я должен отключить подтверждение перезаписи в своем диалоге и сам реализовать эту логику.

Смежные вопросы