Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/02/2013, 19:39
hiramhzr
 
Fecha de Ingreso: enero-2011
Ubicación: En un Cuarto Cubierto de Pasto Verde
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Wxpython: Paso de parámetros entre métodos

Cita:
Iniciado por razpeitia Ver Mensaje
¿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 original
  1. import wx
  2.  
  3. class monti(wx.Frame):
  4.  
  5. #--------------------------------------------------------------------------------
  6. #Constructor principal
  7.     def __init__(self):
  8.         wx.Frame.__init__(self, None, wx.ID_ANY,
  9.                           "Paso de parametros entre metodos", size=(500, 200))
  10.         self.Bind(wx.EVT_CLOSE, self.OnClose)
  11.         self.InitUI()
  12.         self.Centre()
  13.         self.Show()
  14.  
  15. #----------------------------------------------------------------------..........
  16. # Construccion de la GUI
  17.     def InitUI(self):        
  18.        
  19.         distros = ['arch','debian','ubuntu']
  20.        
  21.         panel = wx.Panel(self)
  22.        
  23.         vbox = wx.BoxSizer(wx.VERTICAL)
  24.        
  25.         hbox3= wx.BoxSizer(wx.HORIZONTAL)
  26.         cb = wx.ComboBox(self, pos=(50, 30), choices=distros,
  27.             style=wx.CB_READONLY)
  28.         cb.Bind(wx.EVT_COMBOBOX, self.OnSelect)
  29.        
  30.         hbox3.Add(cb,border=10)
  31.         vbox.Add(hbox3, flag=wx.LEFT, border=30)  
  32.         panel.SetSizer(vbox)
  33.         vbox.Add((-1, 15))    
  34.        
  35.         hbox4 = wx.BoxSizer(wx.HORIZONTAL)
  36.         self.etiquetas = wx.StaticText(self,-1,label=u"Selecciona una distro")
  37.         hbox4.Add(self.etiquetas,border=10)              
  38.         vbox.Add(hbox4, flag=wx.LEFT, border=30)
  39.         vbox.Add((-1, 10))
  40.        
  41.         hbox7 = wx.BoxSizer(wx.HORIZONTAL)
  42.         self.etiqueta = wx.StaticText(self,-1,label=u"Enviar parametro proveniente de OnSelect a onBurn  ")
  43.         hbox7.Add(self.etiqueta,border=10)              
  44.         vbox.Add(hbox7, flag=wx.LEFT, border=30)
  45.         btnGra = wx.Button(self, label="Enviar...")
  46.         btnGra.Bind(wx.EVT_BUTTON, self.onBurn)
  47.         hbox7.Add(btnGra,wx.RIGHT,border=10)  
  48.         vbox.Add(hbox7, flag=wx.LEFT, border=30)    
  49.         vbox.Add((-1, 10))
  50. #----------------------------------------------------------------------
  51.     def onBurn(self, e):
  52.           print "Aqui imprimir el valor seleccionado en el combobox"  
  53. #----------------------------------------------------------------------
  54.     def OnSelect(self, e):
  55.         i = e.GetString()
  56.         print "Ha seleccionado la distro:\n" + i
  57.         self.etiquetas.SetLabel(i)
  58. #----------------------------------------------------------------------    
  59.     def OnQuit(self, e):
  60.       dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question',
  61.       wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION)
  62.       ret = dial.ShowModal()
  63.       if ret == wx.ID_YES:
  64.           self.Destroy()
  65.       else:
  66.           self.Show()
  67. #----------------------------------------------------------------------      
  68.     def OnClose(self, event):
  69.         dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question',
  70.         wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION)
  71.         ret = dial.ShowModal()
  72.         if ret == wx.ID_YES:
  73.             self.Destroy()
  74.         else:
  75.             self.Show()
  76. #----------------------------------------------------------------------
  77. # Run the program
  78. if __name__ == "__main__":
  79.     app = wx.App(False)
  80.     frame = monti()
  81.     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.