【发布时间】:2021-07-01 13:27:21
【问题描述】:
我正在尝试创建一个窗口,该窗口将提供如下所示的复选框网格:grid of checkboxes 10x10
我有以下代码来创建它:
checks = Tk()
checks.title("Check Grid")
value = []
z = 1
for x in range(1,11): # Row
for y in range(1,11): # Column
value.append('')
box = Checkbutton(checks, text = z, variable = value[(z)-1])
box.grid(row = x, column = y, sticky = S)
z += 1
#exit button
def exit():
print(value)
checks.destroy()
Label = Button(checks, text = 'Exit',command = exit).grid(row = 11)
checks.mainloop()
return value`
这样:box = Checkbutton(checks, text = z, variable = value[(x*y)-1]) 我正在尝试将复选框值分配给value 列表的 z 值。这似乎不起作用,有什么想法吗?
问题: 如何使用 tkinter 创建一个复选框网格,将它们的值发送到单个列表的列表索引?
【问题讨论】:
-
变量必须是 tkinter 变量(通常为
StringVar)。在您的情况下(value.append("")),它是一个普通的 python 字符串。将该行更改为value.append(StringVar()) -
好吧,我做到了,但我得到了相同的结果。我什至创建了一个新列表,它遍历
value列表并附加 value[x].get()
标签: python list tkinter checkbox