イベントで入力したキーを取得しよう
今回は bind()メソッドを使って、どのキーが押されたのかを取得してみましょう。
bind()メソッドに関しては、こちらの記事を参照してください。
イベント属性
入力したキーを取得するには、eventオブジェクトの keysym属性を使います。
keysym属性はキーの文字列名を返します。
文字列名 = event.keysym
フォーカスセット
focus_set()メソッドを使うことによって、ウィジェットをアクティブにすることができます。
キーを押下したあと、該当のウィジェットにフォーカスを戻します。
ウィジェット.focus_set()
キー入力イベントを取得するプログラム
以下のプログラムは、入力したキーの文字列名をラベルに表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
### インポート import tkinter ### 入力キー表示関数 def input_key(event): key_name = event.keysym value.set(key_name) ### メイン画面作成 main = tkinter.Tk() ### 画面サイズ設定 main.geometry("640x400") ### ラベル表示変数 value = tkinter.StringVar() ### ラベル作成 label1 = tkinter.Label(master=main, font=(None,24), text="入力キー") label2 = tkinter.Label(master=main, font=(None,48), fg="red", textvariable=value) ### ラベル配置 label1.pack(pady=50) label2.pack() ### キー入力時のイベント取得 label2.bind("<KeyPress>", input_key) ### フォーカスセット label2.focus_set() ### イベントループ main.mainloop() |
キーを押すごとに、該当キーの文字列名がラベルに表示されます。