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 ได้อย่างไร