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

วิธีลบอิลิเมนต์ลูกทั้งหมดด้วย Python Tkinter


Frames มีประโยชน์มากในแอปพลิเคชัน Tkinter หากเรากำหนด Frame ในแอปพลิเคชัน หมายความว่าเรามีสิทธิ์เพิ่มกลุ่ม widget ภายใน อย่างไรก็ตาม widget ทั้งหมดนี้เรียกว่า Children ของ Frame นั้นๆ

สมมติว่าเราต้องการลบ children widgets ทั้งหมดที่กำหนดใน frame แล้วก่อนอื่นเราต้องได้ focus บน children โดยใช้เมธอด winfo_children() เมื่อได้ focus แล้ว เราสามารถลบ children ทั้งหมดที่มีอยู่โดยใช้เมธอด destroy()

ตัวอย่าง

# นำเข้าไลบรารี Tkinter
from tkinter import *

# สร้างอินสแตนซ์ของ Tkinter Frame
win = Tk()
# กำหนดขนาดของหน้าต่าง
win.geometry("700x350")

# เริ่มต้น Frame
frame = Frame(win)

def clear_all():
    for item in frame.winfo_children():
        item.destroy()
    button.config(state="disabled")

# กำหนด ListBox widget
listbox = Listbox(frame, height=10, width=15, bg='grey', activestyle='dotbox', font='aerial')
listbox.insert(1, "Go")
listbox.insert(1, "Java")
listbox.insert(1, "Python")
listbox.insert(1, "C++")
listbox.insert(1, "Ruby")
listbox.pack()

label = Label(win, text="Top 5 Programming Languages", font=('Helvetica 15 bold'))
label.pack(pady=20)

frame.pack()

# สร้างปุ่มเพื่อลบ children ทั้งหมดใน frame object
button = Button(win, text="Clear All", font=('Helvetica 11'), command=clear_all)
button.pack()

win.mainloop()

ผลลัพธ์

การรันโค้ดจะแสดงหน้าต่างที่มีรายการไอเท็มใน list box และปุ่ม

วิธีลบอิลิเมนต์ลูกทั้งหมดด้วย Python Tkinter

เมื่อคลิกปุ่ม "Clear All" จะลบ children ทั้งหมดที่อยู่ภายใน frame object

วิธีลบอิลิเมนต์ลูกทั้งหมดด้วย Python Tkinter