复选框CheckButton在其他开发语言中也被称为CheckBox,功能相对简单。还是先看视频:


首先构建一个用于显示信息的标签对象。

 

label = Label(root)label.grid(row=2, column=0, columnspan=2, sticky=E + W)

准备一个整数变量,用于设定和取得复选框的状态。

 

# control variablecb1_var = IntVar()cb1_var.set(0)

构建一个函数用于处理用户操作。这个函数只会在用户操作时才会被调用,通过程序修改状态时则不会被调用。这个函数的内容是取得变量值反映到标签上。


 


 

# A procedure to be called every time# the user changes the state of this checkbutton.def on_check():    label.config(text=cb1_var.get())

构建复选框。代码中的onvalue和offvalue分别用于指定选中状态和非选中状态的状态值。


 


 

# create a CheckButton.cb1 = Checkbutton(root,text="CheckButton",        background="#ffffa0",foreground="#ff0000",        activebackground="#a0ffa0",activeforeground="#0000ff",        variable=cb1_var,        onvalue=5, offvalue=-5,        command=on_check,        font=ftiTimes, height=1, width=10)cb1.grid(row=0, column=0, columnspan=2)

通过修改变量值,修改复选框的状态。需要注意的是变量值必须和onvalue一致才能选中复选框。


 


 

# 通过修改变量值修改CheckButton状态def toggle_by_var():    sel = cb1_var.get()    if sel == 0:        cb1_var.set(5) #必须和onvalue一致    else:        cb1_var.set(0)Button(root, text='toggle by var', command=toggle_by_var).grid(row=1, column=0, sticky=E+W)

这里例子只是用于说明onvalue,offvalue和variable的用法,如果只是切换复选框,可以直接使用toggle方法。


 


 

# 通过调用toggle函数修改CheckButton状态def toggle_by_fun():    cb1.toggle()Button(root, text='toggle_by_fun', command=toggle_by_fun).grid(row=1, column=1, sticky=E+W)

完整代码可以从下面的链接下载:

​https://github.com/xueweiguo/TkinterPrimer/blob/master/Sample/10%20CheckButton.py​

 

觉得本文有帮助?请分享给更多人。

阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】