ภาพรวม
Widget ปุ่ม (Button) ใน Tkinter ใช้สำหรับจัดการเหตุการณ์ (event handling) ในแอปพลิเคชัน โดยทั่วไปจะกำหนดฟังก์ชัน callback ให้กับพารามิเตอร์ command บทความนี้สาธิตวิธีเปลี่ยนฟังก์ชันที่ผูกกับปุ่มหลังจากสร้างแล้ว โดยใช้เมธอด configure()
ตัวอย่างโค้ด
from tkinter import *
win = Tk()
win.geometry("750x250")
def text_label():
Label(win, text="Woohoo! An Event has occurred!", font=('Helvetica 10 bold')).pack(pady=20)
# เปลี่ยน command ของปุ่มเป็นฟังก์ชันใหม่
button.configure(command=close_win)
def close_win():
win.destroy()
button = Button(win, text="Click", font=('Helvetica 10 bold'), command=text_label)
button.pack(side=TOP)
win.mainloop()การทำงาน
- กดปุ่มครั้งแรก: แสดงข้อความ "Woohoo! An Event has occurred!" และเปลี่ยน command ของปุ่มเป็น
close_win - กดปุ่มครั้งที่สอง: เรียก
close_win()ซึ่งทำลายหน้าต่างและจบโปรแกรม
คำอธิบาย
- เมธอด
configure(command=new_function)ช่วยเปลี่ยนพฤติกรรมของปุ่มได้อย่างไดนามิก - เทคนิคนี้มีประโยชน์เมื่อต้องการให้ปุ่มทำหน้าที่ต่างกันในสถานะต่างๆ เช่น ปุ่ม "Start" กลายเป็น "Stop" หลังกดแล้ว