【问题标题】:PyQt4: Using QFileDialog() to save files not QFileDialog().getSaveFileName()PyQt4:使用 QFileDialog() 保存文件不是 QFileDialog().getSaveFileName()
【发布时间】:2017-11-24 12:53:57
【问题描述】:

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

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() 默认有一个“打开”按钮,有没有办法把它改成“保存”

【问题讨论】:

    标签: python pyqt pyqt4 qfiledialog


    【解决方案1】:

    我找到了解决办法。

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

    打开的用法:

    QFileDialog.setAcceptMode(QtGui.QFileDialog.AcceptOpen)
    

    用于保存:

    QFileDialog.setAcceptMode(QtGui.QFileDialog.AcceptSave)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多