FileOpen,FileSave混淆

时间:2013-01-07 21:11:28

标签: wxpython

我的程序有两个功能(其中包括):一个用于保存文件,另一个用于加载文件:

def OnFileSave(self, event):
    mystring = ...
    f = file(os.path.join(dirName[0], fileName[0]), 'w')
    f.write(mystring)
    self.PushStatusText("Spiel gespeichert!")
    f.close()
    e.Skip()
    return True

def OnFileOpen(self, event):
    dlg = wxFileDialog(self, "Load File", dirName[0], fileName[0],
                       "MyFiles (*.mf)|*.mf|All Files|*.*", wx.OPEN)
    if (dlg.ShowModal() == wx.ID_OK):
        fileName[0] = dlg.GetFilename()
        dirName[0] = dlg.GetDirectory()
        f = file(os.path.join(dirName[0]+'\\', fileName[0]), 'r')
        ...
        dlg.Destroy()

两者都按预期工作,但现在我做了一点改动:当一个文件已经加载(名字!='默认')并且我想加载另一个文件时,第一个文件应该在加载另一个文件之前保存。所以我在OnFileOpen(self,event)上添加了这两行:

if name != 'default':
    return self.OnFileSave(event)

现在问题:第一个文件成功保存,但FileDialog没有打开(所以我无法加载另一个文件)。 当我在“return self.OnFileSave(event)”中删除“return”时,FileDialog会打开,在选择文件后,FileDialog会再次打开。有什么问题?

1 个答案:

答案 0 :(得分:1)

不要回来。只需打电话:

if name != 'default':
    self.OnFileSave(None)