<p>在我的解决方案中,我将<code>BooleanVar</code>作为单独的<code>Checkbutton</code>分配给每个<code>Checkbutton</code>以分别保存每个小部件的当前状态(即“选中”或“未选中”),并将每个<code>Checkbutton</code>保存在名为<code>chkbtns</code>的列表中。这使得在其他函数中很容易引用它们</p>
<pre><code>from tkinter import *
root = Tk()
biomelist = ['Arctic', 'Hill', 'Coast', 'Desert', 'Forest', 'Grassland', 'Mountain',
'Swamp', 'Underdark', 'Underwater', 'Urban']
chkbtns = []
for biome in biomelist:
btnvar = BooleanVar(value=False)
chkbtn = Checkbutton(root, text=biome, variable=btnvar)
chkbtn.var = btnvar # Save associated tkinter variable.
chkbtn.pack(anchor='w')
chkbtns.append(chkbtn)
def sel():
selected = [btn.cget('text') for btn in chkbtns if btn.var.get()]
print(f'selected: {selected}')
return selected
def go():
biomes_Checklist = sel()
b.config(state=NORMAL)
b.delete('1.0', END)
b.insert(INSERT, biomes_Checklist)
b.config(state=DISABLED)
# Defines Go button. This launches the go() function when the go button is pressed.
go_button = Button(root, text="Go!", width=10, command=go)
go_button.pack()
b = Text(root)
b.pack()
root.mainloop()
</code></pre>