Tkinter で Enter キーを関数にバインドする方法

胡金庫 2023年1月30日
  1. イベントを関数にバインドする
  2. キープレスを関数にバインドする
  3. クラスメソッドのキープレスに関数をバインドする例
Tkinter で Enter キーを関数にバインドする方法

このチュートリアルでは、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 は、キーボードイベントのキーシンボルです。上で紹介したように、EnterReturn です。

Tkinter は Enter キーを関数にバインドする

著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook