You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除Tk窗口中的一组Entry组件并根据Spinbox值重新生成输入框列表

解决方法

你只需要在每次生成新Entry前,先销毁已存储的旧Entry组件,再清空存储列表即可,修改后代码如下:

from tkinter import * # 补充缺失的导包部分
CORRECT_ENTRIES = []
def generate_entries():
    # 先删除已有的所有Entry
    for entry in CORRECT_ENTRIES:
        entry.destroy()
    # 清空存储列表
    CORRECT_ENTRIES.clear()
    
    # 再生成新的Entry列表
    n = int(spinbox.get())
    for i in range(1, n+1):
        entry = Entry(width=40)
        entry.grid(row=3+i, column=0, pady=5, padx=5)
        CORRECT_ENTRIES.append(entry)


window = Tk()

# Spinbox
spinbox = Spinbox(from_=3, to=15, width=5)
spinbox.grid(row=2, column=1)

# Button
generate_btn = Button(text="Generate Entries", command=generate_entries)
generate_btn.grid(row=2, column=3)

window.mainloop() # 补充缺失的窗口主循环代码
原理说明
  • tkinter组件调用destroy()方法后,会从窗口中彻底移除该组件,释放相关资源
  • 清空全局存储列表CORRECT_ENTRIES后再添加新生成的Entry,能保证列表里始终只保留当前窗口中存在的输入框实例,方便后续取值使用

内容的提问来源于stack exchange,提问作者J. Ghadani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:54:03