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

TkinterウィンドウにEnterキーをバインドする方法を解説

Tkinterのイベントは実行時に処理され、ボタンやキーにイベントをバインドすることで、アプリケーション内でイベントの優先順位を自由に制御できるようになります。

TkinterウィンドウでEnterキー(リターンキー)をイベントにバインドしたい場合は、bind('<Return>', callback) を使用します。第一引数にキーの種類、第二引数にコールバック関数を指定するだけで、簡単にキー操作とイベントを紐付けることができます。一度キーをイベントにバインドしてしまえば、そのイベントを完全にコントロール可能になります。

サンプルコード

# 必要なライブラリをインポート
from tkinter import *
from PIL import Image, ImageTk

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

# ウィンドウのサイズを設定
win.geometry("700x350")

def show_msg(event):
    label["text"]="Sale Up to 50% Off!"

# ラベルウィジェットを作成
label=Label(win, text="Press Enter Key" ,font="TkMenuFont 20")
label.pack(pady=30)

# Enterキーをウィンドウにバインド
win.bind('<Return>', show_msg)

win.mainloop()

実行結果

上記のコードを実行すると、ウィンドウが表示され、Enterキーを押したタイミングでイベントがトリガーされる仕組みになっています。

TkinterウィンドウにEnterキーをバインドする方法を解説

それでは、実際にEnterキーを押して、ラベルのテキストが切り替わる様子を確認してみましょう。

TkinterウィンドウにEnterキーをバインドする方法を解説

ポイントまとめ

  • キーバインドには bind('<Return>', コールバック関数) を使用する
  • コールバック関数には必ず event 引数を受け取る定義にする
  • バインド先はウィジェット単位でもウィンドウ全体でも指定可能
  1. Python Tkinterでルートウィンドウを非表示・破棄する2つの方法

    Tkinterアプリケーションのテスト中に、デフォルトのウィンドウやフレームを一時的に隠したい、あるいは完全に閉じたいという場面に遭遇することがあります。Tkinterでは、withdraw()メソッドによる「非表示」と、destroy()メソッドによる「破棄」の2つのアプローチが用意されています。mainloop()とウィンドウのライフサイクルmainloop()は、外部イベントによってウィンドウが閉じられるまで、Tkinterアプリケーションを実行し続ける役割を担います。このメインループが動作している間、ウィンドウは画面上に表示され続けます。ウィンドウを完全に破棄(終了)したい場合は、de

  2. tkinterでウィンドウを閉じる方法|destroy()メソッドの使い方を解説

    tkinterを使えば、Pythonで手軽にGUIアプリケーションを作成できます。しかし、タイトルバー右上の×ボタン以外の方法でウィンドウやフレームを閉じたい場合、どのように実装すればよいか悩むこともあるでしょう。そのようなときに役立つのが、ウィンドウを破棄して閉じるための .destroy() メソッドです。tkinterの各ウィジェットや属性は互いに独立しているため、「ウィンドウを閉じる処理」を専用の関数として分離して定義できます。これにより、ボタンのクリックイベントからウィンドウを閉じる動作を自由に制御可能です。サンプルコード# ライブラリをインポート from tkinter impo