繁体   English   中英

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

[英]PyQt4: Using QFileDialog() to save files not 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()具有一个“打开”按钮,是否可以将其更改为“保存”

我找到了解决方案。

QFileDialog有一个名为setAcceptMode(QFileDialog.AcceptMode)的方法,该方法使您可以在“打开”和“保存”之间进行切换。 http://pyqt.sourceforge.net/Docs/PyQt4/qfiledialog.html#setAcceptMode

开放使用:

QFileDialog.setAcceptMode(QtGui.QFileDialog.AcceptOpen)

保存用法:

QFileDialog.setAcceptMode(QtGui.QFileDialog.AcceptSave)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM