第9章 多选按钮控件(Checkbutton)
多选按钮控件,也叫检查按钮控件,是用于实现ON-OFF选择的标准控件。多选按钮的提示信息可以是文字,也可以是图像。每个多选按钮都可以设置独立的回调函数,以实现特定的处理。也可以多个多选按钮共同使用一个回调函数。
提示文本只能使用一种字体,但可以跨行显示。与单选按钮不一样的是,每个多选按钮需要与一个变量相关联。 多选按钮控件用于在两个不同的值之间进行选择(通常是打开或关闭功能)。
9.1 多选按钮控件的属性
选项 | 描述 |
---|---|
activebackground | 当鼠标左键按下时,多选按钮的背景色 |
activeforeground | 当鼠标左键按下时,多选按钮的前景色(文本颜色) |
anchor | 控制文本或者图片如何摆放。可以使用的数值有: N, NE, E, SE, S, SW, W, NW, or CENTER. 默认值是CENTER. |
backgroud bg |
多选按钮的背景色 |
bitmap | 背景图片 |
borderwidth bd |
边框的大小,默认为 2 个像素 |
command | 设置关联的函数,当多选按钮被点击时,执行该函数 |
cursor | 光标的形状设定,如arrow, circle, cross, plus 等 |
disabledforeground | 禁用多选按钮时的前景色 |
font | 设置文本字体 |
foreground fg |
多选按钮的前景色(文本颜色) |
height | 多选按钮的高度,默认为 1行。 |
highlightcolor | 多选按钮获得输入焦点时的高亮颜色 |
highlightbackground | 多选按钮失去输入焦点时背景颜色 |
highlightthickness | 获得或者失去输入焦点的高亮边框宽度 |
indicatoron | 控制indicator的状态。默认是True。如果是False,则表示使用按压式按钮。 |
image | 背景图片 |
justify | 显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER |
offvalue | 多选按钮的值不仅仅是 1 或 0,可以是其他类型的数值,可以通过 onvalue 和 offvalue 属性设置 多选按钮的状态值。 |
offrelief | 多选按钮状态为off时的修饰效果。默认值是RAISED |
onvalue | 多选按钮的值不仅仅是 1 或 0,可以是其他类型的数值,可以通过 onvalue 和 offvalue 属性设置 多选按钮的状态值。 |
overrelief | 鼠标位于多选按钮上方时的显示效果。 |
padx | 多选按钮在x轴方向上的内边距(padding),默认为 1 个像素。 |
pady | 多选按钮在y轴方向上的内边距(padding),默认为 1 个像素。 |
relief | 设置显示效果,就是控件的3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 |
selectcolor | 指示符的背景颜色 |
selectimage | 选中后的图片 |
state | 多选按钮状态,默认为 state=NORMAL |
text | 设置提示文本,使用 “\n” 来对文本进行换行。 |
takefocus | 表示可以使用Tab键移动焦点到该多选按钮。默认值是空字符串。 |
textvariable | 关联的tkinter变量,一般是StringVar类型。如果该变量改变,则这个按钮的文本会更新。 |
underline | 下划线。默认提示文本都不带下划线。取值就是带下划线的字符串索引,从 0开始 |
variable | 多选按钮的变量,variable 的值为 1 或 0,代表着选中或不选中 |
width | 默认宽度是多选按钮的文本或图像决定的,可以设置指定字符数。 |
wraplength | 设置多选按钮的折行显示。单位是像素 |
9.1.1 activebackground 和activeforeground
activebackground是鼠标左键按下时,多选按钮的背景颜色,鼠标键释放后,恢复初始颜色。activeforeground是鼠标左键按下时,多选按钮的文本颜色,鼠标键释放后,恢复初始颜色
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1 = tk.Checkbutton(root,
text='选择1',
activebackground='red',
activeforeground='yellow')
b1.pack()
root.mainloop()
结果:
9.1.2 anchor
用法和第八章的单选按钮是一样的。具体可以参考8.1.2节的说明。这里只附上代码和结果。
#pack 布局
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1 = tk.Checkbutton(root,
text='选择1',anchor=tk.S+tk.W)
b1.pack(fill=tk.BOTH,expand=True)
root.mainloop()
#grid布局:
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)
b1 = tk.Checkbutton(root,
text='选择1',anchor=tk.S+tk.W)
b1.grid(row=0,column=0