Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để chuyển một đối số tới trình xử lý sự kiện trong Tkinter?

Trong hầu hết các tình huống, các hàm gọi lại có thể được coi là một Phương thức Phiên bản. Một phương thức thể hiện truy cập tất cả các thành viên của nó và thực hiện các thao tác với chúng mà không cần chỉ định bất kỳ đối số nào.

Hãy xem xét trường hợp có nhiều hơn một thành phần được xác định và chúng ta muốn xử lý một số sự kiện với các thành phần đó. Để chạy nhiều sự kiện, chúng tôi muốn chuyển nhiều đối số trong trình xử lý sự kiện.

Ví dụ

Trong ví dụ này, chúng tôi đã tạo nhiều tiện ích nút trong một khung và chúng tôi sẽ xử lý các sự kiện khác nhau bằng cách chuyển tên của tiện ích làm đối số. Khi một Nút sẽ được nhấp, nó sẽ cập nhật tiện ích Nhãn, v.v.

#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()

Đầu ra

Chạy đoạn mã trên sẽ hiển thị một cửa sổ chứa các nút Thấp, Trung bình và Cao. Khi chúng ta nhấp vào một nút, nó sẽ hiển thị một số văn bản nhãn trên cửa sổ.

Làm cách nào để chuyển một đối số tới trình xử lý sự kiện trong Tkinter?