tkinter 如何获取Checkbutton复选框的状态
下面是我写的程序片段,已经把其他的删除了。我听过for循环创建了几个复选框,并用bind绑定了同一个操作函数,我想在该函数中获取对应复选框的状态,但是一直没有搞定
event.widget['variable']的类型已经和varlist的类型不一样了。前者是<class '_tkinter.Tcl_Obj'>,后者是<class 'tkinter.IntVar'>,所以不能用get()函数获取其值了
from tkinter import *
def cbtcallback(event):#Checkbutton的调用函数
print(event.widget['text'])
print(event.widget['variable'])
#这里应该怎么获取对应多选框的状态variable的值,下面的方式是不行的。
#if event.widget['variable'].get()==1:
# print('选中了该选项:',event.widget['text'])
root = Tk()
frame1=Frame(root)
frame2=Frame(root)
varlist=
strlist=["我很英俊","我很富有", "我很有才"]
Checkbuttondict={}
#for循环生成三个复选框
for i in range(3):
CkBt=Checkbutton(frame1, text=strlist, variable=varlist)
CkBt.bind("<Button-1>", cbtcallback)
CkBt.pack()
Checkbuttondict.setdefault(CkBt,varlist)
frame1.pack(padx=10,pady=10)
frame2.pack(padx=10,pady=10)
mainloop()
这样好像可以:
from tkinter import *
def cbtcallback(event):# Checkbutton的调用函数
print(event.widget['text'])
if Checkbuttondict.get() == 0:
print('选中了该选项:', event.widget['text'])
root = Tk()
frame1 = Frame(root)
frame2 = Frame(root)
varlist =
strlist = ["我很英俊", "我很富有", "我很有才"]
Checkbuttondict = {}
# for循环生成三个复选框
for i in range(3):
CkBt = Checkbutton(frame1, text=strlist, variable=varlist)
CkBt.bind("<Button-1>", cbtcallback)
CkBt.pack()
Checkbuttondict.setdefault(CkBt, varlist)
frame1.pack(padx=10, pady=10)
frame2.pack(padx=10, pady=10)
mainloop() zltzlt 发表于 2020-7-25 17:58
这样好像可以:
666啊
我一直在尝试那个控件属性,忘记去尝试那个字典了。。感谢
页:
[1]