Checkbutton
Checkbutton(多选按钮)组件用于实现确定是否选择的按钮。Checkbutton 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被自动执行。
使用Checkbutton ,必须创建一个 tkinter 变量用来存放按钮的状态,默认情况下,variable 选项设置1 为选中状态,0 是未选中。也可以使用 onvalue 和 offvalue 选项修改他们的值。v=tk.StingVar() c=tk.Checkbutton(root,text='额,,点我啊',variable=v,onvalue='T',offvalue='F')
import tkinter as tk
root=tk.Tk()
v= tk.IntVar() # 需要一个tkinter 的整形变量,用于表示该按钮是否被选中
c=tk.Checkbutton(root,text='额,,点我啊',variable=v)
c.pack()
# 如果选项被选中,变量 v 就被赋值成1,否则为 0
# 使用一个 label 标签动态的展示
l = tk.Label(root, textvariable = v)
l.pack()
root.mainloop()
Checkbutton 组件被用于作为二选一的按钮(通常为选择“开”或“关”的状态),当你希望表达“多选多”选项的时候,可以将一系列 Checkbutton 组合起来使用。
但是处理“多选一”的问题,还是交给 Radiobutton 和 Listbox 组件来实现吧。
class A:
def __init__(self,root):
self.var = tk.IntVar()
c = tk.Checkbutton(root, text="DUANG~", variable=self.var, command=self.cb)
c.pack()
def cb(self):
print("variable is", self.var.get())
root = tk.Tk()
A(root)
root.mainloop()
variable is 1 # 选中状态
variable is 0
参数
跟label 的参数比较,多出了这些:
方法 | 描述 |
---|---|
indicatoron | 1. 指定前边作为选择的小方块是否绘制 2. 默认是绘制的 3. 该选项会影响到按钮的样式,如果设置为 False,则点击后该按钮变成 “sunken”(凹陷),再次点击变为 “raised”(凸起) |
offvalue | 1. 默认情况下,variable 选项设置为 1 表示选中状态,反之设置为 0 4. 设置 offvalue 的值可以自定义未选中状态的值(详见上方用法举例) |
offvalue | 1. 默认情况下,variable 选项设置为 1 表示选中状态,反之设置为 0 5. 设置 offvalue 的值可以自定义未选中状态的值(详见上方用法举例) |
selectimage | 1. 设置当 Checkbutton 为选中状态的时候显示的图片 6. 如果没有指定 image 选项,该选项被忽略 |
variable | 1. 将 Checkbutton 跟一个 Tkinter 变量关联 2. 当按钮按下时,该变量在 onvalue 和 offvalue 之间切换 3. 这个切换的过程是完全自动的 |
方法
deselect()
– 取消 Checkbutton 组件的选中状态,也就是设置 variable 为 offvalue。
flash()
– 刷新 Checkbutton 组件,该方法将重绘 Checkbutton 组件若干次(在"active" 和 “normal” 状态间切换)。
invoke()
– 调用 Checkbutton 中 command 选项指定的函数或方法,并返回函数的返回值。
– 如果 Checkbutton 的state(状态)"disabled"是 (不可用)或没有指定 command 选项,则该方法无效。
select()
– 将 Checkbutton 组件设置为选中状态,也就是设置 variable 为 onvalue。
toggle()
– 切换 Checkbutton 组件的状态(选中 -> 未选中 / 未选中 -> 选中)。