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

Tkinterのイベントハンドラーに引数を渡す方法は?


ほとんどの場合、コールバック関数はインスタンスメソッドと呼ばれます。インスタンスメソッドは、そのすべてのメンバーにアクセスし、引数を指定せずにそれらのメンバーを使用して操作を実行します。

複数のコンポーネントが定義されていて、それらのコンポーネントでいくつかのイベントを処理したい場合を考えてみましょう。複数のイベントを実行するには、イベントハンドラーで複数の引数を渡すことをお勧めします。

この例では、フレーム内に複数のボタンウィジェットを作成し、ウィジェットの名前を引数として渡すことでさまざまなイベントを処理します。ボタンをクリックすると、ラベルウィジェットなどが更新されます。

#Import the Tkinter library
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
#Create an instance of Tkinter frame
win= Tk()
#Define the geometry
win.geometry("750x250")
#Define Event handlers for different Operations
def event_low(button1):
   label.config(text="This is Lower Value")
def event_mid(button2):
   label.config(text="This is Medium Value")
def event_high(button3):
   label.config(text="This is Highest value")
#Create a Label
label= Label(win, text="",font=('Helvetica 15 underline'))
label.pack()
#Create a frame
frame= Frame(win)
#Create Buttons in the frame
button1= ttk.Button(frame, text="Low", command=lambda:event_low(button1))
button1.pack(pady=10)
button2= ttk.Button(frame, text="Medium",command= lambda:event_mid(button2))
button2.pack(pady=10)
button3= ttk.Button(frame, text="High",command= lambda:event_high(button3))
button3.pack(pady=10)
frame.pack()
win.mainloop()

出力

上記のコードを実行すると、[低]、[中]、[高]のボタンを含むウィンドウが表示されます。ボタンをクリックすると、ウィンドウにラベルテキストが表示されます。

Tkinterのイベントハンドラーに引数を渡す方法は?


  1. Tkinterでフレームをクリアする方法は?

    Tkinterフレームは、あまりにも多くのウィジェットを美的な方法でグループ化および整理するために使用されます。フレームコンポーネントには、ボタンウィジェット、エントリウィジェット、ラベル、スクロールバー、およびその他のウィジェットを含めることができます。 フレームのコンテンツをクリアしたり、フレーム内のすべてのウィジェットを削除したりする場合は、 destroy()を使用できます。 方法。このメソッドは、 winfo_children()を使用してフレームの子をターゲットにすることで呼び出すことができます。 。 例 #Import the required libraries from t

  2. Tkinterラベルのテキストを取得するにはどうすればよいですか?

    Tkinterラベルは、ウィンドウにテキストまたは画像を作成して表示するために使用されます。フォントファミリー、パディング、幅、高さなどのラベル情報をカスタマイズするために使用できるいくつかのコンポーネントと関数があります。ウィンドウにラベルテキストを表示するために、必要なテキストの値を書き込むことができます。ウィンドウに表示されます。 例 #Import the required library from tkinter import * #Create an instance of tkinter frame win= Tk() #Define the geometry of the