私のプログラムには(とりわけ)2つの機能があります。1つはファイルを保存する機能で、もう1つはファイルをロードする機能です。
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()
どちらも期待どおりに機能しますが、少し変更を加えました。1つのファイルがすでにロードされていて(name!='default')、別のファイルをロードしたい場合は、最初のファイルを保存してから、他のファイルをロードします。したがって、OnFileOpen(self、event)の上に次の2行だけを追加しました。
if name != 'default':
return self.OnFileSave(event)
問題:最初のファイルは正常に保存されましたが、FileDialogが開きません(他のファイルを読み込めません)。「returnself.OnFileSave(event)」で「return」を削除すると、FileDialogが開き、ファイルを選択するとFileDialogが再び開きます。どうしたの?