Cita:
Iniciado por razpeitia ¿Puedes poner código que copiando y pegandolo en un archivo corra?
¿Puedes poner tu pregunta de una mas clara y directa?
La verdad no entiendo, lo quieres decir o hacer.
Hola razpeitia, gracias por tu respuesta acá coloco un código ejecutable para mejor comprensión de lo que deseo hacer, debajo de el ejemplo coloco con palabras lo que intento hacer.
Código Python:
Ver originalimport wx
class monti(wx.Frame):
#--------------------------------------------------------------------------------
#Constructor principal
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY,
"Paso de parametros entre metodos", size=(500, 200))
self.Bind(wx.EVT_CLOSE, self.OnClose)
self.InitUI()
self.Centre()
self.Show()
#----------------------------------------------------------------------..........
# Construccion de la GUI
def InitUI(self):
distros = ['arch','debian','ubuntu']
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox3= wx.BoxSizer(wx.HORIZONTAL)
cb = wx.ComboBox(self, pos=(50, 30), choices=distros,
style=wx.CB_READONLY)
cb.Bind(wx.EVT_COMBOBOX, self.OnSelect)
hbox3.Add(cb,border=10)
vbox.Add(hbox3, flag=wx.LEFT, border=30)
panel.SetSizer(vbox)
vbox.Add((-1, 15))
hbox4 = wx.BoxSizer(wx.HORIZONTAL)
self.etiquetas = wx.StaticText(self,-1,label=u"Selecciona una distro")
hbox4.Add(self.etiquetas,border=10)
vbox.Add(hbox4, flag=wx.LEFT, border=30)
vbox.Add((-1, 10))
hbox7 = wx.BoxSizer(wx.HORIZONTAL)
self.etiqueta = wx.StaticText(self,-1,label=u"Enviar parametro proveniente de OnSelect a onBurn ")
hbox7.Add(self.etiqueta,border=10)
vbox.Add(hbox7, flag=wx.LEFT, border=30)
btnGra = wx.Button(self, label="Enviar...")
btnGra.Bind(wx.EVT_BUTTON, self.onBurn)
hbox7.Add(btnGra,wx.RIGHT,border=10)
vbox.Add(hbox7, flag=wx.LEFT, border=30)
vbox.Add((-1, 10))
#----------------------------------------------------------------------
def onBurn(self, e):
print "Aqui imprimir el valor seleccionado en el combobox"
#----------------------------------------------------------------------
def OnSelect(self, e):
i = e.GetString()
print "Ha seleccionado la distro:\n" + i
self.etiquetas.SetLabel(i)
#----------------------------------------------------------------------
def OnQuit(self, e):
dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question',
wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION)
ret = dial.ShowModal()
if ret == wx.ID_YES:
self.Destroy()
else:
self.Show()
#----------------------------------------------------------------------
def OnClose(self, event):
dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question',
wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION)
ret = dial.ShowModal()
if ret == wx.ID_YES:
self.Destroy()
else:
self.Show()
#----------------------------------------------------------------------
# Run the program
if __name__ == "__main__":
app = wx.App(False)
frame = monti()
app.MainLoop()
Para que no batalles copiando pegando subí mi ejemplo a mi dropbox y lo
comparto.
Lo que intento hacer es que, una vez seleccionado una cadena de el combobox como se ve en el ejemplo acciono el método OnSelect el cual regresa al constructor el nombre de la selección y actualiza la etiqueta etiquetas con la selección, hasta aquí todo bien el problema que tengo es que ahora esa misma "variable" que contiene la selección del combobox la quiero ocupar dentro del metodo llamado onBurn que ejecuto cuando presiono el botón enviar.
*Soy usuario GNU/Linux Debian.
Espero me entienda si no cualquier cosa por aquí ando, muchas gracias saludos.