2009-11-11 19 views
0

我正在寫一個wxPython應用程序,我希望(此刻)打印被按下的鍵的名稱。例如,我有一本字典將WXK_BACK映射爲「回」,這似乎是一個理智的。但是,我必須導入哪個文件(包括?)以獲取WXK_BACK的定義?wxPython wx.KeyEvent GetKeyCode()

我有import wx說法,但我不確定這特定的文件保存祕密

回答

3

所有的鍵名可以導入後直接使用wx模塊e.g

>>> 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" 
+0

謝謝! 這很容易,而且我學到了一些東西。我感謝你的全力幫助。 :bp: – 2009-11-12 13:01:33

0

您只需要輸入WX爲WXK_BACK符號。看起來像下面的代碼應該工作。

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" 
+0

謝謝!我對這個python/wxpython和wx還是有點新的。前綴躲避我。 (我正在使用WXK_BACK而不是wx.WXK_BACK)。 非常感謝您的幫助。 :bp: – 2009-11-11 16:55:43

+0

不客氣。 – tom10 2009-11-11 18:00:58