Por mas vueltas que le doy a este code, no le encuentro el error. Seguramente este en la funcion de guardar, porque antes de ponerla funcionaba perfectamente :S
Código Python:
Ver original#-*- coding: iso-8859-1 -*-
import wx
ID_EXIT = 200
ID_ABOUT = 101
ID_OPEN = 102
ID_Save = 103
class Edit(wx.MiniFrame):
def __init__ (self):
wx.MiniFrame.__init__(self, None, -1, 'Goxar Editor', wx.DefaultPosition, (900, 700), (wx.DEFAULT_FRAME_STYLE)^(wx.RESIZE_BORDER|wx.MAXIMIZE_BOX))
panel = wx.Panel(self, wx.NewId(), wx.DefaultPosition, (900, 700))
self.edit = wx.TextCtrl(panel, size=(900, 700), style=wx.TE_MULTILINE)
self.CreateStatusBar()
self.SetStatusText("Barra de estado - Goxar Editor de texto plano")
#-----------------------------------------------------------------------
menubar = wx.MenuBar()
#menu de archivo
archi = wx.Menu()
archi.Append(-1, 'Nuevo', 'Abre un nuevo archivo')
archi.Append(-2, '', '')
archi.Append(ID_OPEN, 'Abrir', 'Abre un archivo')
archi.Append(-1, 'Guardar', 'Sobreescribe el archivo ya guardado')
archi.Append(ID_SAVE, 'Guardar como', 'Guarda el archivo')
archi.Append(-2, '', '')
archi.Append(ID_EXIT, 'Salir', 'Sale del programa')
#menu de edicion
edi = wx.Menu()
edi.Append(-1, 'Copiar', 'Copia parte del texto')
edi.Append(-1, 'Cortar', 'Corta parte del texto')
edi.Append(-1, 'Pegar', 'Pega el contenido del portapapeles')
#menu de ayuda
ayu = wx.Menu()
ayu.Append(ID_ABOUT, 'Acerca de...', 'Mas informacion acerca del programa')
#eventos
wx.EVT_MENU(self, ID_EXIT, self.onClose)
wx.EVT_MENU(self, ID_ABOUT, self.about)
wx.EVT_MENU(self, wx.ID_OPEN, self.Open)
wx.EVT_MENU(self, wx.ID_SAVE, self.Save)
#barra de menu
menubar.Append(archi, '&Archivo')
menubar.Append(edi, '&Edición')
menubar.Append(ayu, '&Ayuda')
self.SetMenuBar(menubar)
#----------------------------------------------------------------------
#cerrar
def onClose(self, *event):
self.Close(True)
#acerca de
def about(self,e):
dlg1 = wx.MessageDialog( self, "blablabla", "", wx.OK)
dlg2 = wx.MessageDialog( self, "blablabla", "", wx.OK)
dlg3 = wx.MessageDialog( self, "blablabla", "", wx.OK)
dlg1.ShowModal()
dlg2.ShowModal()
dlg3.ShowModal()
dlg1.Destroy()
dlg2.Destroy()
dlg3.Destroy()
#abrir
def Open(self,event):
self.dirname = ''
dlg = wx.FileDialog(self, "Abrir", self.dirname,"", "*.*", wx.OPEN)
if dlg.ShowModal()==wx.ID_OK:
self.filename=dlg.GetFilename()
self.dirname=dlg.GetDirectory()
a = open(self.filename, 'r')
self.edit.SetValue(a.read())
self.edit.write(self.filename)
def Save(self,event):
dlg2 = wx.FileDialog(self, "Guardar como", self.dirname, "", "*.*", wx.SAVE | wx.OVERWRITE_PROMPT)
if dlg2.ShowModal()==wx.ID_OK:
itcontains=self.edit.GetValue()
self.filename=dlg2.GetFilename()
self.dirname=dlg2.GetDirectory()
filehandle=open(os.path.join(self.dirname, self.filename),'w')
filehandle.write(itcontains)
filehandle.close()
dlg2.Destroy()
class App(wx.App):
def OnInit(self):
frame = Edit()
frame.Show()
self.SetTopWindow(frame)
return True
if __name__ == '__main__':
app = App()
app.MainLoop()