我正在寫一個wxPython應用程序,我希望(此刻)打印被按下的鍵的名稱。例如,我有一本字典將WXK_BACK映射爲「回」,這似乎是一個理智的。但是,我必須導入哪個文件(包括?)以獲取WXK_BACK的定義?wxPython wx.KeyEvent GetKeyCode()
我有import wx
說法,但我不確定這特定的文件保存祕密
我正在寫一個wxPython應用程序,我希望(此刻)打印被按下的鍵的名稱。例如,我有一本字典將WXK_BACK映射爲「回」,這似乎是一個理智的。但是,我必須導入哪個文件(包括?)以獲取WXK_BACK的定義?wxPython wx.KeyEvent GetKeyCode()
我有import wx
說法,但我不確定這特定的文件保存祕密
所有的鍵名可以導入後直接使用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"
您只需要輸入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"
謝謝!我對這個python/wxpython和wx還是有點新的。前綴躲避我。 (我正在使用WXK_BACK而不是wx.WXK_BACK)。 非常感謝您的幫助。 :bp: – 2009-11-11 16:55:43
不客氣。 – tom10 2009-11-11 18:00:58
謝謝! 這很容易,而且我學到了一些東西。我感謝你的全力幫助。 :bp: – 2009-11-12 13:01:33