Python
 Computer >> コンピューター >  >> プログラミング >> Python

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

キーボードのキーが押されたときに特定の処理を実行することは、ボタン操作と同様にイベントとして扱うことができます。Tkinterアプリケーションでは、bindメソッドを使ってキーイベントをウィジェットやウィンドウに紐付ける(バインドする)ことが可能です。

キーイベントが発生すると、あらかじめ登録しておいたハンドラ関数が呼び出され、そのキーに対応した処理が実行されます。

bindメソッドの基本構文

任意のキーイベントをトリガーしたい場合は、bind('<Key>', ハンドラ) の形式を使用します。特にEnterキーに対応させたい場合は、bind('<Return>', ハンドラ) を使います。<Return>はEnterキーを表すイベント名です。

サンプルコード

# tkinterライブラリをインポート
from tkinter import *

# tkinterフレームのインスタンスを作成
win = Tk()

# ウィンドウサイズを設定
win.geometry("650x250")

def handler(e):
    label = Label(win, text="Enterキーが押されました")
    label.pack()

# ラベルを作成
Label(win, text="キーボードのEnterキーを押してください", font=('Helvetica bold', 14)).pack(pady=20)

# Enterキーにイベントをバインド
win.bind('<Return>', handler)

win.mainloop()

実行結果

このコードを実行すると、次のようなウィンドウが表示されます。

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

ここでキーボードの「Enter」キーを押すと、「Enterキーが押されました」というラベルがウィンドウ内に表示されます。

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

ポイントまとめ

  • Enterキーのイベント名は <Return>
  • バインド先はメインウィンドウでも個別のウィジェットでも可
  • ハンドラ関数にはイベントオブジェクト(引数 e)が渡されるため、定義時に引数を受け取るようにする

この仕組みを応用すれば、フォーム入力後にEnterで送信するなど、実用的なGUIアプリケーションを簡単に作成できます。

  1. 【Python】Tkinterでウィンドウを画面の中央に配置する方法

    Tkinterで作成したウィンドウを画面の中央に配置したいケースはよくあります。本記事では、tk::PlaceWindow メソッドを使った簡単な方法と、ジオメトリ(geometry)を計算してプログラム的に中央へ配置する方法の2つを紹介します。 方法1:tk::PlaceWindow を使う(最も簡単) Tkinterには、ウィンドウを画面中央に配置するための組み込みコマンド tk::PlaceWindow が用意されています。このメソッドに対象となるトップレベル(toplevel)ウィンドウを引数として渡し、配置位置として「center」を指定するだけで、ウィンドウを画面の中央に表示でき

  2. Tkinterでラベルのテキストを取得する方法を解説

    TkinterのLabel(ラベル)ウィジェットは、ウィンドウ上にテキストや画像を表示するために使用される基本的なコンポーネントです。フォントファミリーやパディング、幅・高さなどのオプションを指定することで、ラベルの見た目を自由にカスタマイズできます。ラベルに設定したテキストを取得したい場合は、ラベルウィジェットに対して [text] を指定するだけで、簡単にその値へアクセスできます。以下に具体的なサンプルコードを示します。サンプルコード# 必要なライブラリをインポート from tkinter import * # tkinterフレームのインスタンスを作成 win = Tk() # ウ