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

จะลบองค์ประกอบย่อยทั้งหมดโดยใช้ Python's Tkinter ได้อย่างไร


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

สมมติว่าเราต้องการลบวิดเจ็ตย่อยทั้งหมดที่กำหนดไว้ในเฟรม จากนั้น เราต้องให้ความสำคัญกับเด็กก่อนโดยใช้ winfo_children() กระบวนการ. เมื่อได้จุดโฟกัสแล้ว เราสามารถลบลูกที่มีอยู่ทั้งหมดโดยใช้ destroy() วิธีการ

ตัวอย่าง

#Import the Tkinter Library
from tkinter import *

#Create an instance of Tkinter Frame
win = Tk()

#Set the geometry of window
win.geometry("700x350")

#Initialize a Frame
frame = Frame(win)

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

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

#Create a button to remove all the children in the frame
button = Button(win, text= "Clear All", font= ('Helvetica 11'), command= clear_all)
button.pack()

win.mainloop()

ผลลัพธ์

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

จะลบองค์ประกอบย่อยทั้งหมดโดยใช้ Python s Tkinter ได้อย่างไร

เมื่อเราคลิกปุ่ม "ล้างทั้งหมด" มันจะลบเด็กทั้งหมดที่อยู่ในวัตถุเฟรมออก

จะลบองค์ประกอบย่อยทั้งหมดโดยใช้ Python s Tkinter ได้อย่างไร