PyQt4: использование QFileDialog() для сохранения файлов, а не QFileDialog(). GetSaveFileName()

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

dlg = QFileDialog(self, "Open", "", "Yaml(*.yaml)")
        filenames = QStringList()

        if dlg.exec_():
            filenames = dlg.selectedFiles()
            FILE_NAME = str(QFileInfo(filenames[0]).baseName())

Для сохранения файлов я использую:

_fileName = QFileDialog().getSaveFileName(self, "Save", "./", "Yaml(*.yaml)")
    FILE_NAME = str(QFileInfo(_fileName).baseName())

Тем не менее, графически я замечаю различия между методами open и save.

Я знаю, что я не использую QFileDialog.getOpenFileName(...) Это потому, что QFileDialog.getSaveFileName(...) выводит кучу ошибок при загрузке GUI.

Failed enumerating UDisks2 objects: "org.freedesktop.DBus.Error.Disconnected" 
"Not connected to D-Bus server" 

В любом случае я могу использовать QFileDialog для сохранения файлов? Обратите внимание, что QFileDialog() по умолчанию имеет кнопку "Открыть", есть ли в любом случае, чтобы изменить это на "Сохранить"

1 ответ

Решение

Я нашел решение.

QFileDialog имеет метод с именем setAcceptMode(QFileDialog.AcceptMode), который позволяет вам переключаться между Open и Save. http://pyqt.sourceforge.net/Docs/PyQt4/qfiledialog.html

Использование для открытого:

QFileDialog.setAcceptMode(QtGui.QFileDialog.AcceptOpen)

Использование для сохранения:

QFileDialog.setAcceptMode(QtGui.QFileDialog.AcceptSave)
Другие вопросы по тегам