2016-04-26 4 views
1

これをPycharm IDEで1つのMacbookに正常に実行します。私は矢印の上のキーを押して、event.charはnullではない、それは何かを印刷することができます。しかし、他のMacbookやWindowsシステムでは、文字ではないキーを押すと何も印刷できません。私が見るのは「プレス」です。文字キーを押すとうまく動作し、「プレス:A」のような文字が印刷されます。どんな考えもありがとう。押されたキーが文字に対応するときTkinterを使用して "event.char"を印刷できません

 # 
from Tkinter import * 
#Entry 
def printkey(event): 
    print('press:' + event.char) 
# 
root = Tk() 
#input 
entry = Entry(root) 
# 
entry.bind('<Key>', printkey) 
# 
entry.pack() 
root.mainloop() 
+0

あなたは 'event.keysym'を使用することができます – Pythonista

答えて

2

コードでeventはTkinterイベントオブジェクトです。このオブジェクトは、キーボードイベント(のみ)に関連したこれらの2つのものはその中で、属性の短いリストを持っています

  • char:キーのコード
  • keysymある単一文字の文字列を:キーの記号名である文字列

あなたが探しているのは明らかです。

ここにはa list enumerating the keysyms that will be recognized by Tkがあります。

  • num:このevent Tkinterのオブジェクトの

    attributes(唯一のマウスボタンイベントの)ボタン番号; 1最大

  • xyy_root、ウィジェット
  • x_rootの左上隅の画素でマウス位置、相対上部に、ピクセル単位で、マウス位置の相対画面の左隅
  • widget:イベントが発生したウィジェットです。

だからあなたのコードは次のようになります。

from Tkinter import * 
#Entry 
def printkey(event): 
    print('press:' + event.keysym) 
# 
root = Tk() 
#input 
entry = Entry(root) 
# 
entry.bind('<Key>', printkey) 
# 
entry.pack() 
root.mainloop() 
2

charは値のみが含まれています。そうでない場合は、keysymのような他の属性の1つを印刷または変換する必要があります。

関連する問題