保存对话框只出现一次?

时间:2013-09-17 19:05:53

标签: python user-interface pyqt save pyqt4

我目前正在制作桌面小部件,我想要做的是创建一个用户可以编辑然后保存的文件。但是,如果你们熟悉Microsoft word或任何其他文本编辑器,我想要它,以便在你点击File - >之后保存,出现一个保存对话框,您可以在其中选择保存文件的位置和文件名。但是,在第一次之后,如果文件名保持不变,则不会出现保存对话框 - 而是只会自动保存以前写的内容。这是我想要实现的,但我在尝试这样做时遇到了麻烦。以下是我使用保存对话框保存文件的方法,但我不确定如何在不弹出保存对话框的情况下保存文件。

def saveFile(self):
    filename = QtGui.QFileDialog.getSaveFileName(None, 'Save File', os.path.expanduser("~/Desktop/Calendar Data/"+self.dateString), ".txt") 
    f = open(filename, 'w') 
    filedata = self.text.toPlainText()
    f.write(filedata)
    f.close()

任何人都知道如何做到这一点?如果是这样那将是伟大的!谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您应该将filename设为实例属性,这样您就可以检查它是否已设置:

class Spam:
    ...
    def __init__(self):
        self.filename = None

    def saveFile(self):
        if not self.filename:
            self.filename = QtGui.QFileDialog.getSaveFileName(...)
            # here you should check if the dialog wasn't cancelled
        with open(filename, 'w') as f:
            f.write(self.text.toPlainText())
    ...