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

Tkinterで押されたボタンを特定する方法【サンプルコード付き】

ユーザーとのインタラクションが求められる多くのアプリケーションにおいて、ボタンは欠かせないUI要素です。ここでは、「アプリケーション上でどのボタンが押されたのか」を判別する方法を解説します。

ボタンの情報を取得するには、commandオプションに渡すコールバック関数を活用します。コールバック関数の中でprint()関数を呼び出すことで、クリックされたボタンの情報をコンソールに出力できます。

実装例

# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk

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

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

# ボタンの情報を取得する関数を定義
def get_button(t):
    print(t)

# ボタンオブジェクトを作成
b1 = ttk.Button(win, text="Button-1", command=lambda t="Button-1 Clicked": get_button(t))
b1.place(relx=.46, rely=.5, anchor=CENTER)
b2 = ttk.Button(win, text="Button-2", command=lambda t="Button-2 Clicked": get_button(t))
b2.place(relx=.58, rely=.5, anchor=CENTER)

win.mainloop()

コードのポイント

このコードのポイントは、lambda式のデフォルト引数(t="Button-1 Clicked")を使っている点です。これにより、各ボタンがクリックされたタイミングで、それぞれ固有の文字列がget_button()関数へ渡されます。

もしcommand=get_button("Button-1 Clicked")のように直接書いてしまうと、関数はボタン生成時に即座に実行されてしまいます。lambdaで遅延評価するのは、Tkinterで引数付きコールバックを扱う際の定番テクニックなので、覚えておくと便利です。

実行結果

上記のコードを実行すると、2つのボタンが配置されたウィンドウが表示されます。

Tkinterで押されたボタンを特定する方法【サンプルコード付き】

「Button-1」をクリックすると、コンソールに次のように出力されます。

Button-1 Clicked
  1. Python tkinterでボタンを作成する方法|標準tkinterとttkの違いも解説

    PythonのGUIライブラリ「Tkinter」には、ウィンドウ上にボタンを作成するためのさまざまな方法が用意されています。この記事では、標準のtkinterモジュールを使ったボタンの作成方法と、テーマ機能を持つtkinter.ttkモジュールを使ったボタンの作成方法の2通りを、サンプルコードとともにわかりやすく解説します。 tkinterモジュールでボタンを作成する 以下のプログラムでは、まずウィンドウを作成し、続いてButtonクラスを使ってボタンを生成しています。tkinterモジュール全体をインポートしているため、作成されたボタンには従来型のスタイル(テーマ)が適用されます。 主なパラ

  2. Python Tkinterでボタンにスタイルを適用する方法を解説

    Tkinterは、PythonでGUIアプリケーションを構築するための標準ツールキットであり、直感的なインターフェース開発を強力にサポートします。ボタンのスタイリングにおいても、フォント、サイズ、文字色などを自由にカスタマイズできる柔軟な仕組みが用意されています。本記事では、キャンバス上の特定のボタンだけにスタイルを適用する方法と、すべてのボタンに一括でスタイルを適用する方法を、具体的なコード例とともに解説します。特定のボタンにスタイルを適用するまず、キャンバス上に2つのボタンが配置されており、1つ目のボタンにのみスタイルを適用したいケースを考えてみましょう。この場合は、ttkのStyleクラ