0

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

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

任何人都知道如何做到这一点?如果是这样那就太好了!感谢您的帮助。

4

1 回答 1

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())
    ...
于 2013-09-17T22:54:03.610 回答