0

我正在编写一个 wxPython 应用程序,我希望(目前)在其中打印被按下的键的名称。我有一本字典,例如,将 WXK_BACK 映射到“返回”,这看起来很理智。但是,我必须导入哪个文件(包括?)才能获得 WXK_BACK 的定义?

我有import wx声明,但不确定哪个特定文件包含秘密

4

2 回答 2

3

wx导入模块后可以直接使用所有键名,例如

>>> import wx
>>> wx.WXK_BACK 
8

您也不需要手动生成名称映射的键,您可以自动生成名称映射的键码,例如

import wx

keyMap = {}
for varName in vars(wx):
    if varName.startswith("WXK_"):
        keyMap[varName] = getattr(wx, varName)

print keyMap

然后在 OnChar 你可以这样做

def OnChar(self, evt):
    try:
        print keyMap[evt.GetKeyCode()]
    except KeyError:
        print "keycode",evt.GetKeyCode(), "not found"
于 2009-11-12T08:43:05.033 回答
0

您只需要为 WXK_BACK 符号导入 wx。如下所示的代码应该可以工作。

import wx

class MyClass( wx.Window ):
    def __init__(self):
        self.Bind(wx.EVT_CHAR, self.OnChar)
    def OnChar(self, evt):
        x = evt.GetKeyCode()
        if x==wx.WXK_BACK:
            print "back"
于 2009-11-11T16:08:29.473 回答