Tkinter で Enter キーを関数にバインドする方法
胡金庫
2023年1月30日
Tkinter
Tkinter Function Binding
このチュートリアルでは、Tkinter で Enter キーを関数にバインドする方法を紹介します。
イベントを関数にバインドする
Enter キーを押すことは、ボタンのクリックなどのイベントであり、このイベントに関数またはメソッドをバインドして、指定した関数をイベントにトリガーさせることができます。
widget.bind(event, handler)
event 発生した場合、handler が自動的にトリガーされます。
キープレスを関数にバインドする
import tkinter as tk
app = tk.Tk()
app.geometry("200x100")
def callback(event):
label["text"] = "You pressed Enter"
app.bind("<Return>", callback)
label = tk.Label(app, text="")
label.pack()
app.mainloop()
def callback(event):
label["text"] = "You pressed Enter"
event は関数に渡される隠れた引数です。関数の入力引数で指定しない場合、TypeError が発生します。
app.bind("<Return>", callback)
callback 関数を <Return> イベント、つまり Enter キーを押すイベントにバインドします。
クラスメソッドのキープレスに関数をバインドする例
import tkinter as tk
class app(tk.Frame):
def __init__(self):
self.root = tk.Tk()
self.root.geometry("300x200")
self.label = tk.Label(self.root, text="")
self.label.pack()
self.root.bind("<Return>", self.callback)
self.root.mainloop()
def callback(self, event):
self.label["text"] = "You pressed {}".format(event.keysym)
app()
このクラスの実装は、上記のメソッドに似ています。
event オブジェクトの keysym 属性を表示されたラベルに配置します。
keysym は、キーボードイベントのキーシンボルです。上で紹介したように、Enter は Return です。

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
