我的程序有两个功能(除其他外):一个用于保存文件,一个用于加载文件:
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()
两者都按预期工作,但现在我做了一点改变:当一个文件已经加载(名称!='default')并且我想加载另一个文件时,应该在加载另一个文件之前保存第一个文件。所以我只在 OnFileOpen(self,event) 的顶部添加了这两行:
if name != 'default':
return self.OnFileSave(event)
现在的问题:第一个文件成功保存,但 FileDialog 没有打开(所以我无法加载另一个文件)。当我在“return self.OnFileSave(event)”中删除“return”时,FileDialog 打开,选择文件后 FileDialog 再次打开。有什么问题?