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

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ウィジェットが表示されます。

TkinterでボタンクリックとEnterキー押下の両方から同じ関数を呼び出す方法

<Enter>キーを押した場合も、まったく同じ結果が得られます。つまり、このコードでは「ボタンのクリック」と「<Enter>キーの押下」のどちらの操作からでも、同一の関数を呼び出せるようになっています。この手法を応用すれば、マウス操作とキーボード操作の両方に対応した、使いやすいアプリケーションを効率的に構築できます。

  1. ボタンを押してTkinterウィンドウを閉じる方法

    Tkinterは、ウィジェットやラベルを含むウィンドウ(フレーム)を最初に作成します。ここでは、ボタンを使ってTkinterのウィンドウを閉じる方法を解説します。ボタン(Button)は、特定の操作を実行するために使用できるUIウィジェットです。実装例以下では、クリックするとウィンドウを閉じるボタンを作成します。ウィンドウを閉じてTCLインタープリタを終了させるには、主にdestroy()メソッドを使用します。#必要なライブラリをインポート from tkinter import * #tkinterフレームのインスタンスを作成 win= Tk() #フレームのサイズを設定 win.geo

  2. Tkinterでマウスカーソルを変更する方法【cursorプロパティ活用ガイド】

    Tkinterは、Pythonに標準搭載されているGUIライブラリで、さまざまな機能的なデスクトップアプリケーションを開発するために広く利用されています。豊富な関数やメソッドが用意されており、アプリケーション開発時に高い拡張性と多彩な機能を実現できます。 本記事では、Tkinterのcursor(カーソル)プロパティを使って、ボタン上にマウスを乗せたときのカーソル形状を変更する方法を解説します。Tkinterのウィジェットには多数のカーソルマップが用意されており、エンドユーザーにさまざまな視覚的なフィードバックを提供できます。 Tkinterで利用できる主なカーソル一覧 cursorプロパテ