Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/10/2011, 13:56
Avatar de wilmermorel
wilmermorel
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 30
Antigüedad: 12 años, 8 meses
Puntos: 2
Pregunta Agregar y eliminar items de un ComboBox en wxPython

Ok, lo que necesito puede que sea simple, pero no he encontrado información concreta en la documentación wxpython.
Tengo un ComboBox, el cual construyo pasandole una lista con varios valores.
en el transcurso del programa, la lista cambia, osea, puede que se le agreguen nuevos valores e igual puede que los pierda. No encuentro la forma de hacer que el ComboBox acepte esos cambios.
El siguiente código es una muestra de mi ignorancia.

Código Python:
Ver original
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import wx
  5.  
  6. class Frame(wx.Frame):
  7.     def __init__(self):
  8.         wx.Frame.__init__(self, None, -1, "Ventana")
  9.         self.lista     = ["uno", "dos", "tres"]
  10.         self.combo_box = wx.ComboBox(self, -1, choices=self.lista)
  11.         self.button_1  = wx.Button(self, -1, "Agregar")
  12.         self.button_2  = wx.Button(self, -1, "Eliminar")
  13.        
  14.         self.Bind(wx.EVT_BUTTON, self.Agregar, self.button_1)
  15.         self.Bind(wx.EVT_BUTTON, self.Eliminar, self.button_2)
  16.        
  17.         size = wx.BoxSizer(wx.VERTICAL)
  18.         size.Add(self.combo_box, 0, 0, 0)
  19.         size.Add(self.button_1, 0, 0, 0)
  20.         size.Add(self.button_2, 0, 0, 0)
  21.         self.SetSizer(size)
  22.    
  23.     def Agregar(self, event):
  24.         self.lista.append("otro")
  25.         print(self.lista)
  26.         event.Skip()
  27.    
  28.     def Eliminar(self, event):
  29.         try:
  30.             self.lista.pop()
  31.         except IndexError:
  32.         print(self.lista)
  33.         event.Skip()
  34.  
  35. if __name__ == '__main__':
  36.     app = wx.App(0)
  37.     frame = Frame()
  38.     frame.Show()
  39.     app.MainLoop()

Última edición por razpeitia; 29/10/2011 a las 19:25 Razón: resaltado de sintaxis