【发布时间】:2015-07-07 21:37:05
【问题描述】:
我正在尝试从复选框列表中创建新的复选框,但在新框架中。然而,新创建的复选框在同时创建时就像单选按钮。这是代码(仅用于创建框的函数)
def printcheckbuttons():
val=StringVar()#checkboxlist is a list of checkbox widgets
for x in range (len(checkboxlist)):
for ki in checkboxlist:
if ki.var.get() != 'null':
sale=Checkbutton(frameright,text=ki.var.get()[0:],variable=val,onvalue=ki.var.get(),offvalue='null')
sale.val=val
saletracker.append(sale)#saletracker is a list to track selected checkboxes in checkboxlist ant post them to a second frame
sale.pack(anchor=NW)
checkboxlist.remove(ki)
ki.destroy()
print 'checkboxlist 1',checkboxlist
destroyboxes(checkboxlist)#destroys and removes all checkboxes in checkbuttonlist
print 'checkboxlist',checkboxlist
print "saletracker ", saletracker
【问题讨论】:
-
看起来你只是在复制一个复选框,然后破坏原来的。那有什么意义呢?为什么不保留并重新使用原件?
-
第二个集合是原始集合的子集,允许从不同的搜索中选择多个选项。问题在于我对多个复选框有相同的 StringVar() 实例。更好地在循环中创建变量以获得适当的性能