尝试在for循环中生成复选框(使用tkinter
)时遇到问题&;将响应存储为列表中的0s&1
s/true&false
我目前有:
from tkinter import *
def createCheckButtons():
dict_keys = ('a', 'b', 'c') # ...)
numFields = len(dict_keys)
master = Tk()
cbVariables = {}
cb = {}
Label(master, text="Fields to Return").grid(row=0, sticky=W)
for x in range(numFields):
cbVariables[x] = IntVar()
cb[x] = Checkbutton(master, text=dict_keys[x], \
variable=cbVariables[x]).grid(row=(x+1)%13,column=x//13,sticky=W)
cbResponses = { }
Button(master, text='Finished Selecting',command=vars_store(cbVariables,cb,numFields,\
cbResponses)).grid(row=(x+2),sticky=W, pady=4)
mainloop() #master.mainloop()
master.update()
def vars_store(cbVariables,cab,numFields, cbResponses)
for x in range(numFields):
cbResponses[x] = cb[x].get()
createCheckButtons()
然后,我想通过如下操作将dict_keys
简化为使用复选按钮选择的键:
reducedDict_Keys = { }
For x in range(len(cbResponses)):
if cbResponses[x]:
reducedDict_Keys.append(dict_keys[x])
如果有更好的办法,请告诉我
你不需要定义太多的
dict
来实现你想要的-一个简单的list
就可以了。只需在for循环期间将IntVar
附加到列表中。您还可以使用enumerate
向iterable添加一个计数器,在您的例子中是dict_keys
相关问题 更多 >
编程相关推荐