1.8 Checkbutton 复选框
说明
Checkbutton 是 Tkinter 中用于创建复选框的组件。用户可以通过点击复选框来选择或取消选择一个选项。复选框通常用于表单、设置界面等场景。
创建
check = tk.Checkbutton(root, text="Check", variable=var)
- 作用:创建一个复选框对象。
- 参数:
- root:父容器(通常是根窗口或其他容器)。
- text:复选框旁边显示的文本。
- variable:绑定一个变量(如 IntVar 或 BooleanVar),用于存储复选框的状态。
常用选项
以下是 Checkbutton 的常用配置选项:
text
- 说明:设置复选框旁边显示的文本。
- 示例:
check = tk.Checkbutton(root, text="同意协议")
variable
- 说明:绑定一个变量,用于存储复选框的状态。
- 使用 IntVar 时,onvalue 和 offvalue 通常为 1 和 0。
- 使用 BooleanVar 时,onvalue 和 offvalue 通常为 True 和 False。
- 示例:
var = tk.IntVar()
check = tk.Checkbutton(root, text="同意协议", variable=var)
onvalue 和 offvalue
- 说明:设置复选框选中和未选中时绑定的变量的值。
- 示例:
var = tk.IntVar()
check = tk.Checkbutton(root, text="同意协议", variable=var, onvalue=1, offvalue=0)
command
- 说明:设置复选框状态改变时触发的函数或方法。
- 示例:
def on_check(): print("复选框状态改变!")
check = tk.Checkbutton(root, text="同意协议", command=on_check)
bg(background)
- 说明:设置复选框的背景颜色。
- 示例:
check = tk.Checkbutton(root, text="同意协议", bg="lightblue")
fg(foreground)
- 说明:设置复选框文本的颜色。
- 示例:
check = tk.Checkbutton(root, text="同意协议", fg="blue")
font
- 说明:设置复选框文本的字体、大小和样式。
- 示例:
check = tk.Checkbutton(root, text="同意协议", font=("Arial", 12))
selectcolor
- 说明:设置复选框选中时的背景颜色。
- 示例:
check = tk.Checkbutton(root, text="同意协议", selectcolor="yellow")
state
- 说明:设置复选框的状态(如 "normal", "disabled")。
- 示例:
check = tk.Checkbutton(root, text="同意协议", state="disabled")
indicatoron
- 说明:是否显示复选框的指示器(默认为 True)。
- 示例:
check = tk.Checkbutton(root, text="同意协议", indicatoron=False)
示例演示
以下是一个完整的示例,展示如何使用 Checkbutton 创建和配置复选框:
import tkinter as tk
# 创建根窗口
root = tk.Tk()
root.title("Checkbutton 示例")
root.geometry("300x200")
# 定义复选框状态改变时的回调函数
def on_check():
if var.get() == 1:
label.config(text="复选框已选中")
else:
label.config(text="复选框未选中")
# 创建变量,用于存储复选框的状态
var = tk.IntVar()
# 创建并配置复选框
check = tk.Checkbutton(root, text="同意协议", variable=var, onvalue=1, offvalue=0, command=on_check, bg="lightblue", fg="blue", font=("Arial", 12), selectcolor="yellow")
check.pack(pady=20)
# 创建标签,用于显示复选框状态
label = tk.Label(root, text="复选框未选中", font=("Arial", 12))
label.pack(pady=10)
# 启动主循环
root.mainloop()
代码说明
复选框:
- 显示文本“同意协议”。
- 绑定变量 var,选中时值为 1,未选中时值为 0。
- 背景颜色为浅蓝色,文本颜色为蓝色。
- 字体为 Arial,大小为 12。
- 选中时的背景颜色为黄色。
- 状态改变时调用 on_check 函数。
标签:
- 显示复选框的当前状态。
- 字体为 Arial,大小为 12。
回调函数:
- 当复选框状态改变时,更新标签文本。
运行效果
- 窗口大小为 300x200。
- 复选框显示文本“同意协议”。
- 点击复选框时,标签会显示“复选框已选中”或“复选框未选中”。
- 复选框的背景颜色和文本颜色根据配置显示。
注意事项
- 使用 variable 可以方便地获取和设置复选框的状态。
- 如果需要多个复选框,可以为每个复选框绑定不同的变量。
通过这个示例,你可以掌握 Checkbutton 的基本用法,并根据需要配置复选框的样式和行为。