我正在使用wx.TextCrtl绑定到wx.EVT_TEXT来接收用户的输入,但是我不知道如何检测按下了哪个键(我可以使用st [LengthOfString- 1],但对于非字母的键(例如,退格键)不利,如果我使用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()
接收两个事件或至少两个事件的结果?
答案 0 :(得分:0)
我希望有帮助:
# 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
好看!