所以这是代码,它在很大程度上借鉴了这个问题:
如何从 python tkinter 中 for 循环中的列表创建多个复选框。
from tkinter import *
root = Tk()
enable = {'jack': 0, 'john': 1}
def actright(x):
print(enable.get(x))
for machine in enable:
enable[machine] = Variable()
l = Checkbutton(root, text=machine, variable=enable[machine],
command= actright(machine))
l.pack(anchor = W)
root.mainloop()
我预计输出为:
0
1
相反,输出是:
PY_VAR0
PY_VAR1
如何在数字前没有"PY_VAR"的情况下获取这些值?
删除enable[machine] = Variable()
for machine in enable:
l = Checkbutton(root, text=machine, variable=enable[machine],
command= actright(machine))
l.pack(anchor = W)
root.mainloop()
您会看到PY_VAR0
和PY_VAR1
,因为您将值设置为带有 enable[machine] = Variable()
的值,这会覆盖字典中的值,因此获得所做的输出是有意义的。