TkinterでボタンクリックとEnterキー押下の両方から同じ関数を呼び出す方法
Tkinterは、堅牢で高機能なデスクトップアプリケーションを構築するための、さまざまな組み込み関数・ウィジェット・メソッドを備えたツールキットライブラリです。その中でもButtonウィジェットを使えば、ボタンを簡単に作成し、関数を通じてさまざまな処理を実行できます。さらに、bind("イベント", コールバック)メソッドを利用することで、特定のイベントやコールバック関数をウィジェットやキー入力に紐付けることも可能です。
サンプルコード
次の例では、ユーザーが<Enter>キーを押すたびに画面へメッセージを表示する関数を作成します。<Enter>キーに関数をバインドするには、bind("<Return>", コールバック)メソッドを使用します。
# 必要なライブラリをインポート
from tkinter import *
# tkinterフレーム(ウィンドウ)のインスタンスを作成
win = Tk()
# ウィンドウのサイズを設定
win.geometry("700x350")
# メッセージを表示する関数を定義
def print_msg():
Label(win, text="Hello World!", font=('11')).pack()
# Enterキーに関数をバインド
win.bind("", lambda e: print_msg())
# ボタンウィジェットを作成し、同じ関数をcommandに指定
button = Button(win, text="Click Me", command=print_msg)
button.pack()
win.mainloop()
ポイント
bind()メソッドで登録されたコールバックには、イベントオブジェクトが引数として渡されます。一方、commandオプションには引数なしの関数を指定します。この違いを吸収するため、上記のコードではlambda e: print_msg()のようにラムダ式でラップし、両方のケースで同じ関数を呼び出せるようにしています。
実行結果
上記のコードを実行すると、ボタンが1つ配置されたウィンドウが表示されます。ボタンをクリックすると、メインウィンドウ内にテキスト「Hello World!」を含むLabelウィジェットが表示されます。

<Enter>キーを押した場合も、まったく同じ結果が得られます。つまり、このコードでは「ボタンのクリック」と「<Enter>キーの押下」のどちらの操作からでも、同一の関数を呼び出せるようになっています。この手法を応用すれば、マウス操作とキーボード操作の両方に対応した、使いやすいアプリケーションを効率的に構築できます。
-
ボタンを押してTkinterウィンドウを閉じる方法
Tkinterは、ウィジェットやラベルを含むウィンドウ(フレーム)を最初に作成します。ここでは、ボタンを使ってTkinterのウィンドウを閉じる方法を解説します。ボタン(Button)は、特定の操作を実行するために使用できるUIウィジェットです。実装例以下では、クリックするとウィンドウを閉じるボタンを作成します。ウィンドウを閉じてTCLインタープリタを終了させるには、主にdestroy()メソッドを使用します。#必要なライブラリをインポート from tkinter import * #tkinterフレームのインスタンスを作成 win= Tk() #フレームのサイズを設定 win.geo
-
Tkinterでマウスカーソルを変更する方法【cursorプロパティ活用ガイド】
Tkinterは、Pythonに標準搭載されているGUIライブラリで、さまざまな機能的なデスクトップアプリケーションを開発するために広く利用されています。豊富な関数やメソッドが用意されており、アプリケーション開発時に高い拡張性と多彩な機能を実現できます。 本記事では、Tkinterのcursor(カーソル)プロパティを使って、ボタン上にマウスを乗せたときのカーソル形状を変更する方法を解説します。Tkinterのウィジェットには多数のカーソルマップが用意されており、エンドユーザーにさまざまな視覚的なフィードバックを提供できます。 Tkinterで利用できる主なカーソル一覧 cursorプロパテ