PySide: несогласованные диалоги файлов

Я работаю над приложением, которое требует сохранения и загрузки файлов.

Для загрузки файлов я использую QtGui.QFileDialog(), а затем вызываю file_browser.exec_(). Это дает такой результат:

screenshot1

Чтобы сохранить файл, я вызываю file_browser.getSaveFileName(), что дает совершенно другое окно:

screenshot2

Есть ли способ сделать оба этих окна согласованными?


person Joe Shanahan    schedule 01.03.2015    source источник


Ответы (1)


Статические функции, такие как getSaveFileName, всегда будут использовать собственный диалог, если вы не включите DontUseNativeDialog в аргументе параметров.

С другой стороны, конструктор QFileDialog всегда будет создавать экземпляр встроенного файлового диалога Qt, независимо от того, какие опции установлены. Вы можете изменить режим файла, чтобы получить тип диалога вы хотите.

person ekhumoro    schedule 01.03.2015
comment
Я изменил диалог сохранения файла на self.file_browser.getSaveFileName(options=QFileDialog.DontUseNativeDialog), и теперь он согласован! Жалко, что нет возможности поставить оба на родные, так намного приятнее выглядит. - person Joe Shanahan; 01.03.2015
comment
@JoeShanahan Вы можете сделать диалоговое окно открытия родным, если используете getOpenFileName() вместо exec_(). - person Compholio; 14.05.2015