Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Agregar y eliminar items de un ComboBox en wxPython

Estas en el tema de Agregar y eliminar items de un ComboBox en wxPython en el foro de Python en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/10/2011, 13:56
Avatar de 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
  #2 (permalink)  
Antiguo 29/10/2011, 19:39
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Agregar y eliminar items de un ComboBox en wxPython

Efectivamente no se encuentra en el apartado de wx.ComboBox de la documentación, sin embargo lo que quieres se encuentra en la documentación ItemContainer que es padre de la clase ComboBox.

Lo que tu buscas son los métodos append y delete, tal vez te podrían interesar otros métodos.

Código Python:
Ver original
  1. import wx
  2.  
  3. class Frame(wx.Frame):
  4.     def __init__(self):
  5.         wx.Frame.__init__(self, None, -1, "Ventana")
  6.         self.lista     = ["uno", "dos", "tres"]
  7.         self.combo_box = wx.ComboBox(self, -1, choices=self.lista)
  8.         self.button_1  = wx.Button(self, -1, "Agregar")
  9.         self.button_2  = wx.Button(self, -1, "Eliminar")
  10.        
  11.         self.Bind(wx.EVT_BUTTON, self.Agregar, self.button_1)
  12.         self.Bind(wx.EVT_BUTTON, self.Eliminar, self.button_2)
  13.        
  14.         size = wx.BoxSizer(wx.VERTICAL)
  15.         size.Add(self.combo_box, 0, 0, 0)
  16.         size.Add(self.button_1, 0, 0, 0)
  17.         size.Add(self.button_2, 0, 0, 0)
  18.         self.SetSizer(size)
  19.    
  20.     def Agregar(self, event):
  21.         self.combo_box.Append("otro")
  22.    
  23.     def Eliminar(self, event):
  24.         try:
  25.             self.combo_box.Delete(0)
  26.         except wx._core.PyAssertionError:
  27.             pass
  28.  
  29. if __name__ == '__main__':
  30.     app = wx.App(0)
  31.     frame = Frame()
  32.     frame.Show()
  33.     app.MainLoop()
  #3 (permalink)  
Antiguo 29/10/2011, 21:01
Avatar de wilmermorel  
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 30
Antigüedad: 12 años, 8 meses
Puntos: 2
Respuesta: Agregar y eliminar items de un ComboBox en wxPython

Que ironía! cuando buscamos algo que no encontramos, siempre estaba en el lugar menos pensado. En mas de una ocasión pensé probar usando Append, nunca supuse que podía ser tan obvio su uso ya que, en wx, se suele usar con frecuencia, Set, Insert... me enfoque mas en esa linea, gracias por sacarme de ella razpeitia!

Etiquetas: lista, wxcombobox, wxpython
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:21.