Skip to content

Checkbutton 组件

复选框:可以同时多选的一组框,其只有两种状态,选中与未选中。

基本用法与可选属性

基本用法

基本用法:Checkbutton(根对象, [属性列表])

根对象:在那个窗体显示,例如主窗体。

属性列表:是可选的属性=属性值组成。

可选属性

属性说明
text标签显示的文本
font设置文本的字体和大小
fg(foreground)字体的颜色,
bg (background)标签的背景色
width标签的宽度(一个中文的字体宽为单位)
height标签的高度(一个中文的字体高为单位)
cursor鼠标的样式
padx文字到边框的距离,水平方向
pady文字到边框的距离,垂直方向
bd(borderwidth)边框的宽度
relief边框的样式
justify文本对齐方式
image图片
compound图片与文字的混搭
anchor方位
variable控制变量
state组件的状态,正常:normal 禁用:disabled
selectcolor选中框内的颜色

专有方法

方法作用
.select()设置为选中
.delect()设置为未选中
.toggle()切换选中状态

简单案例

python
import tkinter as tk

root = tk.Tk()
root.geometry("500x300+100+100")

# 需要一个Tkinter变量,用于表示该按钮是否被选中
v = tk.IntVar()
c = tk.Checkbutton(root, text="测试一下", variable=v)
c.pack()

# 将 Label 设置为可变变量
label = tk.Label(textvariable=v)
label.pack()

root.mainloop()

当单击选项时,Label 显示的变量相应地发生了改变

image-20201201154730087

简单复选框案例

有了前面的基础,下面写一个古代四大美女的程序:

python
import tkinter as tk

root = tk.Tk()
root.geometry("500x300+100+100")
girls = ['西施', '王昭君', '貂蝉', '杨玉环']

# 创建可变变量容器
v = [tk.IntVar(), tk.IntVar(), tk.IntVar(), tk.IntVar()]

# # 提前选择内容
# v[3].set(1)

for index in range(4):
    c = tk.Checkbutton(root, text=girls[index], variable=v[index])
    c.pack(anchor='w')


def get_value():
    # 默认打印的是文字对象
    # print(v)
    print([i.get() for i in v])


button = tk.Button(text='获取参数', command=get_value)
button.pack()

root.mainloop()

image-20201201154631477