在事件文本wxpython上按下哪个键



我正在使用wx.textcrtl绑定到wx.evt_text以从用户接收输入,但我不知道如何检测到哪个键已按下(我可以读取最后的char char在使用st [lengthofString-1]的字符串上,但这对不是字母的键不好(例如,backspace键)。如果我使用wx.evt_key_down事件,那么我看不到插入数据。我该怎么做才能让他们俩?文本控件具有操纵字符串的选项,也可以在按下时检测每个键的选项?

self.command_line = wx.TextCtrl(self.CommandLinePanel, -1, style = wx.TE_MULTILINE | wx.TE_PROCESS_ENTER)  # past: self.log.
        self.command_line.Bind(wx.EVT_TEXT, self.OnKeyCommandLine)
def OnKeyCommandLine(self, event):
    st = str(event.GetString())
    LengthOfSt = len(st)
    #...
    #my code
    #End of function

如何添加

之类的东西
self.command_line.Bind(wx.EVT_KEY_DOWN, self.OnKeyWhich)
def OnKeyWhich(self, evt):
    print "The key pressed: %s" % evt.GetKeyCode() 

并接收两个事件或至少两个事件的结果?

我希望这有所帮助:

# Define an event handler
self.Bind(wx.EVT_CHAR_HOOK, self.OnKeyWhich, self.command_line)
# Determine when user push RETURN (for example):
def OnKeyWhich(self, event): 
    key = event.GetKeyCode()                
    if key == wx.WXK_RETURN:
        self.update_result()
    else:
        event.Skip()

这是密钥编码的列表:https://wxpython.org/phoenix/docs/html/wx.keycode.enumeration.html

好看!

最新更新