Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การเปลี่ยนแปลงคำสั่ง command ของปุ่ม Tkinter ใน Python

ภาพรวม

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

การทำงาน

  1. กดปุ่มครั้งแรก: แสดงข้อความ "Woohoo! An Event has occurred!" และเปลี่ยน command ของปุ่มเป็น close_win
  2. กดปุ่มครั้งที่สอง: เรียก close_win() ซึ่งทำลายหน้าต่างและจบโปรแกรม

คำอธิบาย

  • เมธอด configure(command=new_function) ช่วยเปลี่ยนพฤติกรรมของปุ่มได้อย่างไดนามิก
  • เทคนิคนี้มีประโยชน์เมื่อต้องการให้ปุ่มทำหน้าที่ต่างกันในสถานะต่างๆ เช่น ปุ่ม "Start" กลายเป็น "Stop" หลังกดแล้ว