【Python】Tkinterのボタンcommandでラムダ式を使う方法
ラムダ関数(Pythonでは「匿名関数」とも呼ばれます)は、TkinterでGUIアプリケーションを構築する際に非常に便利な機能です。ラムダを使うことで、コールバック関数へ複数のデータや引数を渡すことが可能になります。ラムダは任意の関数の中で、式に対する匿名関数として記述できます。特にボタンのcommandオプションでは、ラムダを利用してコールバック関数にデータを渡すのが定番のテクニックです。
サンプルコード
ここでは、複数のボタンを持つ簡単なアプリケーションを作成します。各ボタンのcommandにはラムダ関数を定義し、クリックされたボタン固有の値を共通のコールバック関数へ渡します。
#Import the library
from tkinter import *
from tkinter import ttk
#Create an instance of Tkinter frame
win= Tk()
#Set the window geometry
win.geometry("750x250")
#Display a Label
def print_text(text):
Label(win, text=text,font=('Helvetica 13 bold')).pack()
btn1= ttk.Button(win, text="Button1" ,command= lambda:
print_text("Button 1"))
btn1.pack(pady=10)
btn2= ttk.Button(win, text="Button2" ,command= lambda:
print_text("Button 2"))
btn2.pack(pady=10)
btn3= ttk.Button(win, text="Button3" ,command= lambda:
print_text("Button 3"))
btn3.pack(pady=10)
win.mainloop()実行結果
上記のコードを実行すると、複数のボタンが配置されたウィンドウが表示されます。各ボタンは、ラムダ関数を介してテキストメッセージを引数として共通のコールバック関数print_text()に渡しています。

その後、それぞれのボタンをクリックしてみてください。クリックしたボタンに応じたメッセージが画面上に表示されます。このようにラムダ式を活用すれば、1つのコールバック関数を複数のウィジェットで使い回しながら、異なる引数を柔軟に渡せるようになります。
-
Python Tkinterのaskopenfile()関数でファイルを選択して読み込む方法
Pythonプログラムで使用するファイルのパスをハードコーディングする代わりに、GUIを使ってユーザー自身にフォルダ構造をブラウズさせ、目的のファイルを選択してもらうことができます。これはtkinterモジュールを利用することで実現でき、キャンバス(ウィンドウ)を定義し、その上にファイルを参照するためのボタンを配置します。以下のプログラムでは、ファイルを開くための関数を定義しています。ここではテキストファイルを開くことに限定しています。Pythonはテキストファイルの内容を読み取り、非常に読みやすい形で出力できるためです。.txtや.csvなど、テキストベースのファイルであればどのようなもので
-
PythonのTkinterでボタンに画像を追加する方法【サンプルコード付き】
Pythonの標準GUIライブラリ「Tkinter」には、ボタンなどのウィジェットに画像を追加する機能が備わっています。テキストだけではなくアイコンや画像を表示することで、ユーザーは視覚的なシンボルから操作内容を直感的に把握できるようになり、インターフェース全体の使いやすさが大きく向上します。 本記事では、Pillow(PIL)ライブラリのImageTkモジュールに含まれるPhotoImageクラスを使用し、ローカルに保存した画像ファイルを読み込んでウィジェットに表示する方法を解説します。画像ファイルのパスは、ご自身の環境に合わせて適宜変更してください。 サンプルコード from tkint