我的程序有两个功能(其中包括):一个用于保存文件,另一个用于加载文件:
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会再次打开。有什么问题?
答案 0 :(得分:1)
不要回来。只需打电话:
if name != 'default':
self.OnFileSave(None)