我正在制作一个程序,它为用户提供了一个可供选择的复选框。复选框是通过循环自动创建的。我能够检测到哪些复选框已被勾选,但我以后无法自行更改特定复选框的状态。具体来说,我想在单击按钮后从选中的复选框中删除所有刻度,但更一般地说,我想知道如何更改单个复选框的状态。这是一个示例代码:
import tkinter
from tkinter import *
tagsValue = {'Beef': 0, 'Fish': 0, 'Chicken': 0, 'Pork': 0, 'Lamb': 0, 'Egg': 0, 'Ham': 0}
def execute():
my_text.delete('1.0', END)
for tag in tagsValue:
if tagsValue[tag].get() == '1':
my_text.insert(INSERT, ('\n' + tag))
root = Tk()
root.title('User Selection')
root.geometry("300x300")
my_button = Button(root, text ="Submit",command = execute)
my_text = Text(root)
for tag in list(tagsValue):
tagsValue[tag] = Variable()
l = Checkbutton(root,justify=LEFT,width=8, text=tag, variable=tagsValue[tag])
l.deselect()
l.pack()
my_button.pack()
my_text.pack()
root.mainloop()
我在root.mainloop() 之前尝试过使用tagsValue['Ham'] = '0' 和tagsValue['Ham'] = 0 之类的东西,但这些都不起作用。我知道使用['state'] 来更改复选框的状态,但是由于我的复选框没有命名,所以我不能使用它。 (我不能单独命名复选框,因为我有很多很多复选框)。那么如何更改复选框的状态呢?
|