PyQt4:使用QFileDialog()保存文件而不是QFileDialog()。getSaveFileName()

时间:2017-06-21 14:37:14

标签: python pyqt pyqt4 qfiledialog

我正在尝试创建一个程序,允许用户打开预先存在的文件并保存当前文件。打开我正在使用的文件:

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 个答案:

答案 0 :(得分:0)

我找到了解决方案。

QFileDialog有一个名为setAcceptMode(QFileDialog.AcceptMode)的方法,它允许您在Open和Save之间切换。 http://pyqt.sourceforge.net/Docs/PyQt4/qfiledialog.html#setAcceptMode

开放的用法:

QFileDialog.setAcceptMode(QtGui.QFileDialog.AcceptOpen)

保存用法:

QFileDialog.setAcceptMode(QtGui.QFileDialog.AcceptSave)