我想使用wx.Choice組件來創建一個簡單的應用程序。如何將wx.Choice組件中的項目綁定到函數?
這個想法是,wx.Choice中列出了一些項目,每個項目都會觸發一個獨特的功能。
我的代碼,第一個版本是:
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, 0, 'wxPython pull-down choice', size = (400, 300))
panel_select_model= wx.Panel(self, -1)
model_list = ['Test_A', 'Test_B']
self._model_type = None
self._stat_tex = wx.StaticText(panel_select_model, 1, "Select Model Type:", (15, 20))
self._droplist = wx.Choice(panel_select_model, 2, (150, 18), choices = model_list)
""" Bind A Panel """
self._droplist.SetSelection(0)
self._droplist.Bind(wx.EVT_CHOICE, self.Test_A_click)
但事實證明,在下拉列表中的兩個項目將觸發相同的功能(我期望Test_A
將觸發功能和Test_B
乾脆什麼也不做)。因此,我嘗試綁定Test_B
另一種方法Test_B_click
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, 0, 'wxPython pull-down choice', size = (400, 300))
panel_select_model= wx.Panel(self, -1)
model_list = ['Test_A', 'Test_B']
self._model_type = None
self._stat_tex = wx.StaticText(panel_select_model, 1, "Select Model Type:", (15, 20))
self._droplist = wx.Choice(panel_select_model, 2, (150, 18), choices = model_list)
""" Bind A Panel """
self._droplist.SetSelection(0)
self._droplist.Bind(wx.EVT_CHOICE, self.Test_A_click)
""" Bind B Panel """
self._droplist.SetSelection(1)
self._droplist.Bind(wx.EVT_CHOICE, self.Test_B_click)
上面的代碼顯示的主框架,在它的下降列表,並在下拉列表中的兩個項目。但是,當我單擊這兩個項目中的任何一個時,都不再觸發任何功能。
那麼,我該如何實現我的目標:將不同的函數綁定到wx.Choice組件中的每個項目,並使它們正確觸發函數。
感謝。