2009-03-25 20 views
14

मैं() एक wx.ComboBox में विभिन्न विकल्पों एक नया एक के साथ पुराने ComboBox स्वैप की तुलना में बदलने के लिए एक बेहतर तरीका नहीं मिला में विकल्प बदल जाते हैं। क्या कोई बेहतर तरीका है?गतिशील रूप से एक 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() 

उत्तर

25

wx.ComboBoxwx.ItemContainer से निकला है, जो Appending, Clearing, Inserting और Deleting मदों के लिए तरीकों की है, इन सभी विधियों wx.ComboBox पर उपलब्ध हैं।

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

या self.sf.AppendItems ([ '3', '4']) –

+0

@Toni कूल:

एक तरीका यह है कि तुम क्या चाहते text_return() विधि को परिभाषित करने के रूप में निम्नानुसार किया जाएगा करने के लिए मुझे लगता है कि के लिए देख रहा था - लेकिन किसी कारण से कि समारोह दर्ज नहीं किया गया है। – Moe

+0

धन्यवाद। AppendItems नए दस्तावेज़ों में है, लेकिन पुराने लोगों में नहीं है। – Orjanp

संबंधित मुद्दे