首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyQt4:使用QFileDialog()保存文件,而不是QFileDialog().getSaveFileName()

PyQt4:使用QFileDialog()保存文件,而不是QFileDialog().getSaveFileName()
EN

Stack Overflow用户
提问于 2017-06-21 22:37:14
回答 1查看 1.2K关注 0票数 0

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

代码语言:javascript
复制
dlg = QFileDialog(self, "Open", "", "Yaml(*.yaml)")
        filenames = QStringList()

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

用于保存我正在使用的文件:

代码语言:javascript
复制
_fileName = QFileDialog().getSaveFileName(self, "Save", "./", "Yaml(*.yaml)")
    FILE_NAME = str(QFileInfo(_fileName).baseName())

然而,在图形上,我注意到了open和save方法之间的差异。

我知道我没有使用QFileDialog.getOpenFileName(...)这是因为QFileDialog.getSaveFileName(...)在加载GUI时输出一系列错误。

代码语言:javascript
复制
Failed enumerating UDisks2 objects: "org.freedesktop.DBus.Error.Disconnected" 
"Not connected to D-Bus server" 

有没有可以使用QFileDialog保存文件的方法?请注意,QFileDialog()在默认情况下有一个“打开”按钮,是否无论如何都要将其更改为“保存”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-21 23:18:47

我找到了一个解决方案。

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

open的用法:

代码语言:javascript
复制
QFileDialog.setAcceptMode(QtGui.QFileDialog.AcceptOpen)

保存的用法:

代码语言:javascript
复制
QFileDialog.setAcceptMode(QtGui.QFileDialog.AcceptSave)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44679143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档