작은 실행 가능한 샘플이 없기 때문에 무엇을하는지 확신 할 수 없습니다.
import wx
class MyPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
txt = wx.TextCtrl(self)
self.choice_widget = wx.Choice(self, choices=['a', 'b', 'c'])
self.choice_widget.Bind(wx.EVT_KEY_DOWN, self.OnInputCharPressSelect)
main_sizer = wx.BoxSizer(wx.VERTICAL)
main_sizer.Add(txt, 0, wx.ALL, 5)
main_sizer.Add(self.choice_widget, 0, wx.ALL, 5)
self.SetSizer(main_sizer)
def OnInputCharPressSelect(self, event):
print('OnInputCharPressSelect fired')
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Choices')
panel = MyPanel(self)
self.Show()
if __name__ == '__main__':
app = wx.App(False)
frame = MainFrame()
app.MainLoop()
내가 조절 탭
TextCtrl
위젯에서
Choice
위젯으로, 바인딩 된 이벤트 처리기가 발생하지 않습니다, 올바른 예를 들면 다음과 같습니다. 또한 마우스를 사용하여 항목을 선택하면 실행되지 않습니다. 그렇게하려면
Choice
위젯을
EVT_CHOICE
에 바인딩해야합니다.
OnInputCharPressSelect
을 실행하려면 Choice
위젯을 선택 (강조 표시)하고 키보드의 키를 눌러야합니다. 이렇게하면 키를 누를 때마다 처리기가 한 번씩 실행됩니다.
이 코드는 wxPython 4.0.0b2 및 Python 3.6이 설치된 Window 7에서 테스트되었습니다.