我正在编写一个 wxPython 应用程序,我希望(目前)在其中打印被按下的键的名称。我有一本字典,例如,将 WXK_BACK 映射到“返回”,这看起来很理智。但是,我必须导入哪个文件(包括?)才能获得 WXK_BACK 的定义?
我有import wx
声明,但不确定哪个特定文件包含秘密
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"
您只需要为 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"