2009-11-11 2 views
0

나는 눌려진 키의 이름을 인쇄하고자하는 wxPython 응용 프로그램을 작성하고 있습니다. 예를 들어, WXK_BACK을 "뒤로"매핑하여 맵핑이 잘 된 사전이 있습니다. 그러나 WXK_BACK의 정의를 가져 오려면 어떤 파일을 가져와야합니까? wxPython wx.KeyEvent GetKeyCode()

은 내가 import wx 문을 가지고 있지만, 당신은 단지 WXK_BACK 심볼에 대해 WX를 가져와야 비밀

답변

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

고마워요! 그게 더 쉽습니다. 그리고 나는 뭔가를 배웠습니다. 당신의 모든 도움에 감사드립니다. : bp : –

0

을 보유하고 어떤 특정 파일 확실입니다. 다음과 같은 코드가 작동해야합니다.

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에 조금 새로운 편이다. 접두사는 나를 벗어났다. (나는 wx.WXK_BACK보다는 WXK_BACK을 사용하고 있었다). 도움 주셔서 대단히 감사합니다. : bp : –

+0

반갑습니다. – tom10