2009-03-25 15 views
14

No encontré una mejor manera de cambiar las diferentes opciones en un wx.ComboBox() que cambiar el antiguo ComboBox por uno nuevo. ¿Hay una mejor manera?Cambie dinámicamente las opciones en un wx.ComboBox()

Oerjan Pettersen

#!/usr/bin/python 

#20_combobox.py 

import wx 
import wx.lib.inspection 

class MyFrame(wx.Frame): 
    def __init__(self, *args, **kwargs): 
     wx.Frame.__init__(self, *args, **kwargs) 

     self.p1 = wx.Panel(self) 
     lst = ['1','2','3'] 
     self.st = wx.ComboBox(self.p1, -1, choices = lst, style=wx.TE_PROCESS_ENTER) 

     self.st.Bind(wx.EVT_COMBOBOX, self.text_return) 


    def text_return(self, event): 
     lst = ['3','4'] 
     self.st = wx.ComboBox(self.p1, -1, choices = lst, style=wx.TE_PROCESS_ENTER) 


class MyApp(wx.App): 
    def OnInit(self): 
     frame = MyFrame(None, -1, '20_combobox.py') 
     frame.Show() 
     self.SetTopWindow(frame) 
     return 1 

if __name__ == "__main__": 
    app = MyApp(0) 
# wx.lib.inspection.InspectionTool().Show() 
    app.MainLoop() 

Respuesta

25

wx.ComboBox deriva de wx.ItemContainer, que tiene métodos para Appending, Clearing, Inserting y Deleting artículos, todos estos métodos están disponibles en wx.ComboBox.

Una manera de hacer lo que quiera sería definir el método text_return() de la siguiente manera:

def text_return(self, event): 
    self.st.Clear() 
    self.st.Append('3') 
    self.st.Append('4') 
+2

o self.sf.AppendItems ([ '3' '4']) –

+0

@Toni fresca Estaba buscando eso, pero por alguna razón esa función no está documentada. – Moe

+0

Gracias. AppendItems está en los nuevos documentos, pero no en los antiguos. – Orjanp

Cuestiones relacionadas