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)
しかし、ドロップダウン リストの 2 つの項目が同じ機能をトリガーすることがわかりました (私は、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)
上記のコードは、メイン フレーム、その中のドロップ リスト、およびドロップ リスト内の 2 つの項目を表示します。ただし、2 つの項目のいずれかをクリックすると、機能がトリガーされなくなります。
では、目標を達成するにはどうすればよいでしょうか: wx.Choice コンポーネント内の各項目にさまざまな関数をバインドし、それらが関数を正しくトリガーするようにします。
ありがとう。