Python 如何删除除1个特定小部件以外的所有子部件?

Python 如何删除除1个特定小部件以外的所有子部件?,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我有一个框架,在这个框架中,我试图删除所有子窗口小部件,只有一个除外。我熟悉删除具有以下内容的所有儿童: for child in frame.winfo_children(): child.destroy() 我甚至可以通过以下方式防止删除特定类型的小部件(例如,按钮): 我想要的是能够删除所有类型的所有子项,除了一个特定的小部件。下面是一个功能完整的示例。我想毁掉一切,除了留下我 import tkinter as tk root = tk.Tk() frame = tk.Fram

我有一个框架,在这个框架中,我试图删除所有子窗口小部件,只有一个除外。我熟悉删除具有以下内容的所有儿童:

for child in frame.winfo_children():
    child.destroy()
我甚至可以通过以下方式防止删除特定类型的小部件(例如,按钮):

我想要的是能够删除所有类型的所有子项,除了一个特定的小部件。下面是一个功能完整的示例。我想毁掉一切,除了留下我

import tkinter as tk
root = tk.Tk()
frame = tk.Frame(root)
frame.grid(column=0, row=0)
keep_me = tk.Button(frame, text='Keep me')
keep_me.grid(column=0, row=0)
destroy_me = tk.Button(frame, text='Expendable')
destroy_me.grid(column=0, row=1)

for child in frame.winfo_children():
    # Here's where I need help. Don't know how to single-out 'keep_me'
    child.destroy()

您只需查看用于保存小部件的变量是否等于子变量,即

for child in frame.winfo_children():
    # Here's where I need help. Don't know how to single-out 'keep_me'
    if child != keep_me:
        child.destroy()

... 如果你不介意的话,我就去打自己的脸,很高兴能帮上忙
for child in frame.winfo_children():
    # Here's where I need help. Don't know how to single-out 'keep_me'
    if child != keep_me:
        child.destroy()