Как узнать тип файла для сохранения, используя QFileDialog - PullRequest
3 голосов
/ 08 июня 2011

О pyQt4

Я предпочитаю использовать статический метод для getSaveFilename в QFileDialog, чтобы пользователь видел собственный диалог Windows / Mac.

Моя проблема заключается в том, что если пользователь нене набирайте расширение файла в имени файла сохранения (скажем, при выборе типа изображения для сохранения файла как), тогда у меня нет способа проверить, какой тип файла они хотели сохранить.

Как создать диалог для сохранения файлов с фильтром и как узнать, какой фильтр выбрал пользователь?

Например:

files_types = "GML (*.gml);;Pickle (*.pickle);;YAML (*.yml)"
file = QtGui.QFileDialog.getSaveFileName(self, 'Save file', '', files_types)

С файлом var I 'У меня будет только путь к файлу, но я не уверен, какой формат выбрал пользователь.

Итак, я хочу знать, как мне получить расширение или тип файлов, выбранный пользователем.Есть ли где-нибудь, чтобы получить selectedFilter, используя этот метод?

Большое спасибо!

Ответы [ 2 ]

6 голосов
/ 15 сентября 2011

Вы можете использовать метод getSaveFileNameAndFilter():

filename, filter = QtGui.QFileDialog.getSaveFileNameAndFilter(self, 'Save file', '', files_types)

PySide однако getSaveFileNameAndFilter() не существует, а getSaveFileName() уже ведет себя таким образом. I 'я не уверен, так ли это и в случае PyQT API версии 2 (по умолчанию для Python 3)

0 голосов
/ 18 августа 2011

Это невозможно.

Единственный способ сделать это - создать общий диалог, но с другой стороны вы потеряете красивые родные окна.

...