Python Tkinter 复选框(Checkbutton)
Python Tkinter 复选框用来选取我们需要的选项,它前面有个小正方形的方块,如果选中则有一个对号,也可以再次点击以取消该对号来取消选中。
语法
语法格式如下:
w = Checkbutton ( master, option=value, ... )
master: 按钮的父容器。
options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。
序号 | 可选项 & 描述 |
---|---|
1 | activebackground 当鼠标放上去时,按钮的背景色 |
2 | activeforeground 当鼠标放上去时,按钮的前景色 |
3 | bg 按钮的背景色 |
4 | bitmap 位图 |
5 | bd 边框的大小,默认为 2 个像素 |
6 | command 关联的函数,当按钮被点击时,执行该函数 |
7 | cursor 光标的形状设定,如arrow, circle, cross, plus 等 |
8 | disabledforeground 禁用选项的前景色 |
9 | font 文本字体 |
10 | fg 选项的前景色 |
11 | height 复选框文本行数,默认为 1。 |
12 | highlightcolor 聚焦的高亮颜色 |
13 | image 是否使用图标 |
14 | justify 显示多行文本的时候,设置不同行之间的对齐方式,可选项包括LEFT, RIGHT, CENTER |
15 | offvalue Checkbutton 的值不仅仅是 1 或 0,可以是其他类型的数值,可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。 |
16 | onvalue Checkbutton 的值不仅仅是 1 或 0,可以是其他类型的数值,可以通过 onvalue 和 offvalue 属性设置 Checkbutton 的状态值。 |
17 | padx 按钮在x轴方向上的内边距(padding),是指按钮的内容与按钮边缘的距离,默认为 1 像素。 |
18 | pady 按钮在y轴方向上的内边距(padding),默认为 1 像素。 |
19 | relief 边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。 |
20 | selectcolor 选中后的颜色,默认为 selectcolor="red"。 |
21 | selectimage 选中后的图片 |
22 | state 状态,默认为 state=NORMAL |
23 | text 显示的文本,使用 "\n" 来对文本进行换行。 |
24 | underline 下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,前两个字符带下划线,以此类推 |
25 | variable 变量,variable 的值为 1 或 0,代表着选中或不选中 |
26 | width 默认宽度是复选框的文本或图像决定的,你可以设置指定字符数。 |
27 | wraplength 是否设置包裹。 |
方法
以下为常用的方法:序号 | 方法 & 描述 |
---|---|
1 | deselect() 清除复选框选中选项。 |
2 | flash() 在激活状态颜色和正常颜色之间闪烁几次单选按钮,但保持它开始时的状态。 |
3 | invoke() 可以调用此方法来获得与用户单击单选按钮以更改其状态时发生的操作相同的操作 |
4 | select() 设置按钮为选中。 |
5 | 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()
测试输出结果如下: