【发布时间】:2012-03-30 03:55:00
【问题描述】:
使用以下代码,我尝试获取检查按钮相应文本值的更新列表,每次检查或取消检查检查按钮:
import Tkinter as tk
opt = []
def chkbox_checked():
for ix, item in enumerate(cb):
opt.append(cb_v[ix].get())
print opt
root = tk.Tk()
mylist = [
'NR',
'ECEF X',
'ECEF Y',
'ECEF Z',
'height'
]
cb = []
cb_v = []
for ix, text in enumerate(mylist):
cb_v.append(tk.StringVar())
cb.append(tk.Checkbutton(root, text=text, onvalue=text, variable=cb_v[ix], comand=chkbox_checked))
cb[ix].grid(row=ix, column=0, sticky='w')
label = tk.Label(root, width=20)
label.grid(row=ix+1, column=0, sticky='w')
root.mainloop()
例如,如果从第一个到最后一个检查所有按钮,我想要的输出将是:
['NR']
['NR','ECEF X]
['NR','ECEF X','ECEF Y']
['NR','ECEF X','ECEF Y','ECEF Z]
['NR','ECEF X','ECEF Y','ECEF Z','height',]
但是使用上面的代码,我得到了成倍的输出,而且检查按钮本身也有问题,从一开始就检查它们的状态。 任何帮助将不胜感激。
【问题讨论】: