我正在尝试使用 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()