Python “保存”对话框是否只显示一次?

Python “保存”对话框是否只显示一次?,python,user-interface,pyqt,save,pyqt4,Python,User Interface,Pyqt,Save,Pyqt4,我目前正在制作一个桌面小部件,我想做的是创建一个用户可以编辑然后保存的文件。但是,如果你们熟悉MicrosoftWord或任何其他文本编辑器,我希望在点击File->save之后,出现一个save对话框,您可以在其中选择保存文件的位置和文件名。但是,在第一次之后,如果文件名保持不变,则不会出现“保存”对话框,而是自动保存以前编写的内容。这是我想要实现的,但我在尝试实现这一点时遇到了困难。下面是我使用“保存”对话框保存文件的方法,但我不确定如何在不弹出“保存”对话框的情况下保存文件 def sav

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

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()

有人知道怎么做吗?如果是这样,那就太好了!谢谢您的帮助。

您应该将
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())
    ...

令人惊叹的。非常感谢。:)