我没有找到更好的方法来更改wx.ComboBox()中的不同选项,而不是使用新的ComboBox交换旧的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()
答案 0 :(得分:29)
wx.ComboBox派生自wx.ItemContainer,其中包含Appending,Clearing,Inserting和Deleting项的方法,所有这些方法均为可在wx.ComboBox上找到。
执行所需操作的一种方法是定义text_return()方法,如下所示:
def text_return(self, event):
self.st.Clear()
self.st.Append('3')
self.st.Append('4')