Вы можете просто использовать GetSelection()
в обратном вызове события и установить все комбинированные списки на полученный результат.
т.е.
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="Test")
self.MyList = ["Abc","Def","Ghi"]
self.panel1 = wx.Panel(self,-1)
self.panel2 = wx.Panel(self,-1)
self.panel3 = wx.Panel(self,-1)
self.Picker1 = wx.ComboBox(self.panel1, pos=(10,10), value="1", size=(100, -1), choices=self.MyList)
self.text1 = wx.StaticText(self.panel1, -1, "1", pos=(120,10))
self.Picker2 = wx.ComboBox(self.panel2, pos=(10,10), value="2", size=(100, -1), choices=self.MyList)
self.text2 = wx.StaticText(self.panel2, -1, "2", pos=(120,10))
self.Picker3 = wx.ComboBox(self.panel3, pos=(10,10), value="3", size=(100, -1), choices=self.MyList)
self.text3 = wx.StaticText(self.panel3, -1, "3", pos=(120,10))
self.Bind(wx.EVT_COMBOBOX, self.EvtComboBox)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(self.panel1)
vbox.Add(self.panel2)
vbox.Add(self.panel3)
self.SetSizer(vbox)
self.Show()
self.panel1.SetFocus()
self.panel2.Hide()
self.panel3.Hide()
def EvtComboBox(self,event):
ev = event.GetSelection()
self.Picker1.SetSelection(ev)
self.Picker2.SetSelection(ev)
self.Picker3.SetSelection(ev)
self.panel2.Show()
self.panel3.Show()
self.Layout()
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
app.MainLoop()
Я добавил простой фрагмент текста рядом с каждым комбинированным списком дляЯсность и изначально скрытые панели 2 и 3, как вы намекаете, что они скрыты, в вашем вопросе.Примечание self.Layout()
требуется для отображения скрытых панелей.