Checkbutton
多选框
多选框控件;用于在程序中提供多项选择框
Python Tkinter 复选框用来选取我们需要的选项,它前面有个小正方形的方块,如果选中则有一个对号,也可以再次点击以取消该对号来取消选中。
语法
语法格式如下:
w = Checkbutton(master, option=value, ...)
- master: 按钮的父容器。
- options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。
可选项 | 描述 |
---|---|
activebackground | 当鼠标放上去时,按钮的背景色 |
activeforeground | 当鼠标放上去时,按钮的前景色 |
bg | 按钮的背景色 |
bitmap | 位图 |
bd | 边框的大小,默认为 2 个像素 |
command | 关联的函数,当按钮被点击时,执行该函数 |
cursor | 光标的形状设定,如arrow, circle, cross, plus 等 |
disabledforeground | 禁用选项的前景色 |
font | 文本字体 |
fg | 选项的前景色 |
height | 复选框文本行数,默认为 1。 |
highlightcolor | 聚焦的高亮颜色 |
image | 是否使用图标 |
justify | 显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER |
offvalue | 未选中时的值,不仅仅是 1 或 0,可以是其他类型的数值,可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。 |
onvalue | 选中时的值,不仅仅是 1 或 0,可以是其他类型的数值,可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。 |
padx | 按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边缘的距离,默认为 1 像素。 |
pady | 按钮在y轴方向上的内边距(padding),默认为 1 像素。 |
relief | 边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 |
selectcolor | 选中后的颜色,默认为 selectcolor=“red”。 |
selectimage | 选中后的图片 |
state | 状态,默认为 state=NORMAL,如果是disabled表示无法被选取使用,如果是hidden表示被隐藏 |
text | 显示的文本,使用 “\n” 来对文本进行换行。 |
underline | 下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,前两个字符带下划线,以此类推 |
variable | 变量,variable 的值为 1 或 0,代表着选中或不选中 |
width | 默认宽度是复选框的文本或图像决定的,你可以设置指定字符数。 |
wraplength | 是否设置包裹。 |
方法
以下为常用的方法:
序号 | 方法 & 描述 |
---|---|
deselect() | 清除复选框选中选项。 |
flash() | 在激活状态颜色和正常颜色之间闪烁几次单选按钮,但保持它开始时的状态。 |
invoke() | 可以调用此方法来获得与用户单击单选按钮以更改其状态时发生的操作相同的操作 |
select() | 设置按钮为选中。 |
toggle() | 选中与没有选中的选项互相切换 |
实例
实例中点击按钮会显示一个信息:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from Tkinter import *
import tkMessageBox
import Tkinter
top = Tkinter.Tk()
CheckVar1 = IntVar()
CheckVar2 = IntVar()
C1 = Checkbutton(top, text = "RUNOOB", variable = CheckVar1, onvalue = 1, offvalue = 0, height=5, width = 20)
C2 = Checkbutton(top, text = "GOOGLE", variable = CheckVar2, onvalue = 1, offvalue = 0, height=5, width = 20)
C1.pack()
C2.pack()
top.mainloop()
多选框允许我们从 n
个选项中选择 1 - n
个选项。在下面的示例中,我们创建了一个字典存储不同的爱好,同样创建了 n
个多选框实例,并且将值依次存入 dic_hobby
。
# 选择爱好
hobbys = {0: '唱歌', 1: '跳舞', 2: '篮球', 3: '足球', 4: '绘画'}
dic_hobby = {}
for i in range(len(hobbys)):
dic_hobby[i] = tk.BooleanVar()
cbtn_hobby = tk.Checkbutton(window, text=hobbys[i], variable=dic_hobby[i])
cbtn_hobby.place(x=100 + i * 60, y=110)