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

问题描述 投票:0回答:1

我正在使用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() 

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

python wxpython wx.textctrl
1个回答
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

好看!

© www.soinside.com 2019 - 2024. All rights reserved.