Tkinter のウィジェットのコマンド パラメーターの概要
tkinter のウィジェットを操作するにはいくつかの方法があります
☆commandパラメータを使用する 例えばボタンを作成する場合、ボタンがクリックされたときに実行されるコールバック関数をcommandパラメータを使用して指定できます。この記事では、このアプローチに焦点を当てます。
☆Bind Event(バインドイベント)を使用する場合は、bind()メソッドを使用します。イベントをキャプチャするには、Widget オブジェクトの binding() メソッドを使用してイベントをコールバック関数にバインドする必要があります。この方法はhttps://blog.csdn.net/cnds123/article/details/127411016でご覧いただけます。
【コールバック関数(Callback function)とは、通常、特定のイベントや条件が満たされたときに自動的に呼び出される関数です。Tkinter では、通常、ユーザーの対話によって生成されたイベントを処理するためにコールバック関数が使用されます。】
Tkinter では、ほとんどのウィジェットには command という名前のオプションがあり、これはウィジェットがユーザーによってトリガーされたときに実行される関数またはメソッドを指定するために使用されます。
具体的には、ユーザーがウィジェットを操作すると (ボタンを押す、メニューを選択するなど)、Tkinter はウィジェットに関連付けられた関数またはメソッドを自動的に呼び出し、イベント関連の情報をパラメーターとしてウィジェットに渡します。このようにして、ウィジェットが関数またはメソッドでトリガーされたときに実行するコードを実装できます。コマンド パラメーターを使用するための基本的な構文は次のとおりです。
ウィジェット = tkinter.Widget(親, ..., コマンド=関数名)
このうち、widget は Tkinter コントロール オブジェクト、parent はコントロールが属する親コンテナ オブジェクト、... はその他のオプションのパラメータです。コマンドパラメータには、呼び出す関数の名前を指定します。
たとえば、次のコードはボタン ウィジェットを作成し、そのコマンド オプションを関数 Say_hello() に設定します。ユーザーがボタンをクリックすると、Tkinter は自動的に関数を呼び出し、その中のコードを実行して、単純なプロンプト ボックスを表示します。ソース コードは次のとおりです。
import tkinter as tk
from tkinter import messagebox
root = tk.Tk()
root.geometry("300x180+300+200")
def say_hello():
messagebox.showinfo('Hello', 'Welcome to Tkinter!')
button = tk.Button(root, text='Say Hello', command=say_hello)
button.pack()
root.mainloop()
コマンド パラメータに割り当てられた関数には括弧を含めないでください。そうしないと、関数はイベントのトリガー時ではなく、コントロールの作成時に直接呼び出されます。
関数でパラメーターを使用する必要がある場合は、ラムダ関数を定義することで使用できます。例えば:
import tkinter as tk
from tkinter import messagebox
root = tk.Tk()
root.geometry("300x180+300+200")
def say_hello(name):
messagebox.showinfo('Hello', f'Hi, {name}!')
button = tk.Button(root, text='Say Hello', command=lambda: say_hello('Alice'))
button.pack()
root.mainloop()
上記のコードでは、ラムダ関数を使用してパラメータ「Alice」をsay_hello()関数に渡しています。このようにして、ユーザーがボタンをクリックすると、Tkinter は自動的にラムダ関数を呼び出し、その中でsay_hello('Alice') ステートメントを実行し、アリスにこんにちはというメッセージを表示します。
ラムダ関数は、匿名関数として知られる特別な形式の関数であり、名前付き関数を定義せずに小さな関数を迅速に作成できます。
ラムダ関数の基本的な構文は次のとおりです。
ラムダ引数:式
このうち、引数はラムダ関数のパラメータを表し、コンマで区切られた 0 個以上のパラメータを指定できます。式は、ラムダ関数が呼び出されたときに実行される計算ロジックを示す式です。パラメータ リストと式はコロンで区切られます。
ラムダ関数は通常の関数とは異なり関数名がなく、戻り値は式の計算結果によって自動的に返されます。
以下は、2 つの引数を受け取り、その合計を返す単純なラムダ関数の例です。
add = ラムダ x, y: x + y
print(add(3, 5)) # 出力: 8
ラムダ関数の詳細については、https://blog.csdn.net/cnds123/article/details/129871043を参照してください。