tkinter - 使用 tkinter 创建可变数量的检查按钮
问题描述
我正在尝试使用 tkinter 创建可变数量的检查按钮。我还创建了一个“删除”按钮。当我点击它时,它什么也不做。当我向检查按钮添加命令时,它们的行为就好像所有命令都是相同的,返回列表中最后一个检查按钮的值。在任何情况下,当我填写这些框时,检查按钮的变量都不会更改为 onvalue。为什么?非常感谢。
l = 3
checkbox_vars = [0]*l
checkbuttons = [0]*l
for i in range(l):
checkbox_vars[i] = tk.IntVar()
checkbuttons[i] = tk.Checkbutton(
query_env,
text=names[i] + SUFFIX_TXT,
variable = checkbox_vars[i],
command=lambda: print(i, checkbox_vars[i].get())
)
checkbuttons[i].pack()
names_updated = names
def delete():
for i in range(l):
if checkbox_vars[i].get() is True:
names_updated.remove(names[i])
print(names_updated)
filepath = pathlib.Path(DATAFOLDER + names[i] + SUFFIX_TXT)
filepath.unlink()
checkbuttons[i].destroy()
delete_btn = tk.Button(
query_env,
text=GUI_DELETE,
command=delete)
delete_btn.pack()
解决方案
推荐阅读
- android - app:assembleDebug 与 assmbleDebug 有什么区别?
- android - 错误:找不到参数[目录'libs']的方法实现()
- javascript - chrome-extension:// 页面内的 Chrome 扩展
- c - C语言的while循环中的++i和i++
- python-sphinx - 'make' 不是内部或外部命令、可运行程序或批处理文件。[狮身人面像]
- javascript - 材质 UI - TreeView 数据结构
- design-patterns - 避免循环引用的设计模式
- postgresql - 如何将“created_timestamp”:1553678246 转换为日期 dd:mm:yyyy 格式
- javascript - 一些书签不在 iOS 上执行:如何调试?
- arrays - 在 Angular 中将数组转换为对象