Checkbutton复选框控件

# Checkbutton复选框控件
# Checkbutton
# 控件是一种供用户选择相应条目的按钮控件,但与
# Radiobutton
# 不同的是,Checkbutton
# 控件不仅允许用户选择一项,还允许用户同时选择多项,各个选项之间属于并列的关系。
# 复选框控件同样有许多适用场景,比如选择兴趣爱好、选择选修课,以及购买多个物品等,在这种情况下都可以使用复选框控件,其语法格式如下
import tkinter as tk

# 创建主窗口
root = tk.Tk()
root.title("Tkinter Checkbutton Example")

# 创建 Tkinter 变量
check_var1 = tk.IntVar()
check_var2 = tk.IntVar()
check_var3 = tk.IntVar()

# 定义回调函数
def on_change():
    print(f"Checkbox 1 state: {check_var1.get()}, Checkbox 2 state: {check_var2.get()}, Checkbox 3 state: {check_var3.get()}")

# 创建 Checkbutton 控件
# text: 显示在复选框旁边的文本内容,使用 '\n' 实现文本换行
cb1 = tk.Checkbutton(root,
                     text="Option 1\nFirst line\nSecond line",  # 文本内容
                     variable=check_var1,  # 与复选框关联的 Tkinter 变量
                     onvalue=1,  # 当复选框被选中时,与之关联的变量的值
                     offvalue=0,  # 当复选框未被选中时,与之关联的变量的值
                     indicatoron=True,  # 是否显示复选框的图形指示器,默认为 True
                     selectcolor="red",  # 选中状态下的图形指示器的颜色(小方框)
                     # selectimage 参数在这个例子中使用
                     # selectimage=tk.PhotoImage(file="path/to/image.png"),  # 当复选框被选中时显示的图像
                     textvariable=tk.StringVar(value="Option 1"),  # 与复选框关联的 Tkinter 变量
                     wraplength=100,  # 指定文本应该换行的最大宽度
                     command=on_change)  # 当复选框状态改变时触发的回调函数
cb1.pack()  # 添加到主窗口

# 创建第二个 Checkbutton 控件
cb2 = tk.Checkbutton(root,
                     text="Option 2\nThird line\nFourth line",  # 文本内容
                     variable=check_var2,  # 与复选框关联的 Tkinter 变量
                     onvalue=1,  # 当复选框被选中时,与之关联的变量的值
                     offvalue=0,  # 当复选框未被选中时,与之关联的变量的值
                     indicatoron=True,  # 是否显示复选框的图形指示器,默认为 True
                     selectcolor="green",  # 选中状态下的图形指示器的颜色
                     # selectimage 参数在这个例子中使用
                     # selectimage=tk.PhotoImage(file="path/to/image.png"),  # 当复选框被选中时显示的图像
                     # textvariable 参数在这个例子中使用
                     textvariable=tk.StringVar(value="Option 2"),  # 与复选框关联的 Tkinter 变量
                     wraplength=100,  # 指定文本应该换行的最大宽度
                     command=on_change)  # 当复选框状态改变时触发的回调函数
cb2.pack()  # 添加到主窗口

# 创建第三个 Checkbutton 控件
cb3 = tk.Checkbutton(root,
                     text="Option 3\nFifth line\nSixth line",  # 文本内容
                     variable=check_var3,  # 与复选框关联的 Tkinter 变量
                     onvalue=1,  # 当复选框被选中时,与之关联的变量的值
                     offvalue=0,  # 当复选框未被选中时,与之关联的变量的值
                     indicatoron=True,  # 是否显示复选框的图形指示器,默认为 True
                     selectcolor="blue",  # 选中状态下的图形指示器的颜色
                     # selectimage 参数在这个例子中使用
                     # selectimage=tk.PhotoImage(file="path/to/image.png"),  # 当复选框被选中时显示的图像
                     # textvariable 参数在这个例子中使用
                     textvariable=tk.StringVar(value="Option 3"),  # 与复选框关联的 Tkinter 变量
                     wraplength=100,  # 指定文本应该换行的最大宽度
                     command=on_change)  # 当复选框状态改变时触发的回调函数
cb3.pack()  # 添加到主窗口

# 设置初始状态
cb1.deselect()  # 设置初始状态为未选中
cb2.deselect()  # 设置初始状态为未选中
cb3.deselect()  # 设置初始状态为未选中

# 运行主循环
root.mainloop()

# text: 显示在复选框旁边的文本内容。使用 \n 可以实现文本的换行。
# variable: 与复选框关联的 Tkinter 变量(例如 IntVar 或 BooleanVar)。当用户点击复选框时,该变量的值会在 onvalue 和 offvalue 之间切换。
# onvalue: 当复选框被选中时,与之关联的变量的值。默认情况下,此值为 1。
# offvalue: 当复选框未被选中时,与之关联的变量的值。默认情况下,此值为 0。

# indicatoron: 布尔值,决定是否显示复选框的图形指示器(通常是小方块)。默认为 True。

# selectcolor: 选中状态下的图形指示器的颜色。默认颜色由系统指定。

# selectimage: 当复选框处于选中状态时显示的图像。如果未指定 image 参数,该选项将被忽略。

# textvariable: 与复选框关联的 Tkinter 变量(通常为 StringVar),其内容将显示在复选框旁边。当变量值更改时,显示的文本也会自动更新。

# wraplength: 指定文本应该换行的最大宽度,单位为屏幕单元。默认为 0,表示不换行。
# 方法
# deselect(): 将复选框设置为未选中状态,即将 variable 设置为 offvalue。

# flash(): 使复选框闪烁,即临时交换前景色和背景色。

# invoke(): 触发复选框关联的 command 函数。如果复选框处于禁用状态或者没有指定 command,则无效。

# select(): 将复选框设置为选中状态,即将 variable 设置为 onvalue。

# toggle(): 切换复选框的状态。如果当前为选中状态,则变为未选中状态;反之亦然
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值