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

ความแตกต่างระหว่าง root.destroy() และ root.quit() ใน Tkinter

เมื่อเราเรียกใช้เมธอด destroy() กับออบเจ็กต์หน้าต่าง Tkinter จะทำให้กระบวนการ mainloop หยุดทำงานและทำลาย Widget ทุกตัวภายในหน้าต่าง เมธอด destroy() ใช้หลักเพื่อหยุดและปิดตัวแปรแปล (interpreter) ที่ทำงานในเบื้องหลัง

ส่วนเมธอด quit() ใช้หยุดกระบวนการหลังจากฟังก์ชัน mainloop() ทำงานแล้ว เราสามารถสาธิตการทำงานของทั้งสองเมธอดได้โดยการสร้างปุ่ม Button

ตัวอย่างโค้ด

# นำเข้าไลบรารีที่จำเป็น
from tkinter import *

# สร้างอินสแตนซ์ของเฟรม Tkinter
win = Tk()

# กำหนดขนาดเฟรม
win.geometry("650x450")

# ฟังก์ชันสำหรับปุ่ม Quit
def quit_win():
    win.quit()

# ฟังก์ชันสำหรับปุ่ม Destroy
def destroy_win():
    win.destroy()

# ปุ่มสำหรับเมธอด Quit
Button(win, text="Quit", command=quit_win, font=('Helvetica bold', 20)).pack(pady=5)

# ปุ่มสำหรับเมธอด Destroy
Button(win, text="Destroy", command=destroy_win, font=('Helvetica bold', 20)).pack(pady=5)

win.mainloop()

ผลลัพธ์

เมื่อรันโค้ด จะแสดงหน้าต่างที่มีปุ่ม "Quit" และ "Destroy"

ความแตกต่างระหว่าง root.destroy() และ root.quit() ใน Tkinter

คำเตือน: quit() จะปิดโปรแกรมทันทีโดยไม่ผ่านกระบวนการปิดปกติ จึงแนะนำให้ปิดโปรแกรมจาก Task Manager หลังการทดสอบ