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

如何在tkinter循环生成控件时传递Label值并点击按钮销毁整个Frame

错误原因

  • 拼写错误:Tkinter 组件的销毁方法正确拼写为 destroy,你的代码里写的 destory 是笔误,因此触发了属性不存在的报错。
  • lambda 逻辑错误:你当前写的 lambda:[ (lambda num=num: deleteEvent(num)),f.destory] 只是把两个函数对象放到了列表里,没有实际调用执行,就算拼写正确也不会触发打印和删除操作。

修复方案

直接将按钮绑定的command参数修改为如下写法即可:

e3=tk.Button(f, text='delete', command=lambda num=num: (deleteEvent(num), f.destroy()))

说明

  • 直接在lambda参数位置绑定当前循环的num值,规避闭包延迟绑定导致所有按钮都取最后一个num值的问题
  • 用逗号分隔两个要执行的操作,运行时会先调用deleteEvent(num)打印对应文本,再调用f.destroy()删除整个Frame
  • 修正了销毁方法的拼写错误

内容的提问来源于stack exchange,提问作者daniel chen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:36:01