本篇文章主要 Python Tkinter 的 Checkbutton Widget
Checkbutton
是 Tkinter 中的复选框控件,允许用户选中/取消选中选项 (◉‿◉)
基本用法
1
2
3
4
5
6
7
8
9
|
from tkinter import *
root = Tk()
# 创建 Checkbutton
check = Checkbutton(root, text="接受条款")
check.pack()
root.mainloop()
|

变量绑定 🔄
Checkbutton
需要绑定变量来存储状态:
变量类型 |
默认值 |
选中值 |
IntVar |
0 |
1 |
BooleanVar |
False |
True |
StringVar |
"" |
“1” |
示例代码 👇
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
from tkinter import *
root = Tk()
# 创建变量 (IntVar 或 BooleanVar 都可用)
var = IntVar() # 或 var = BooleanVar()
# 绑定变量
check = Checkbutton(root, text="记住密码", variable=var)
check.pack()
# 获取值按钮
def show_value():
print("当前状态:", var.get())
Button(root, text="显示状态", command=show_value).pack()
root.mainloop()
|

初始值和事件处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
from tkinter import *
root = Tk()
var = BooleanVar(value=True) # 初始选中状态
def on_change():
print("状态变化为:", var.get())
check = Checkbutton(root,
text="自动登录",
variable=var,
command=on_change) # 状态变化时执行的函数
check.pack()
root.mainloop()
|
禁用和样式 ✏️
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
from tkinter import *
root = Tk()
var = IntVar()
check = Checkbutton(root,
text="夜间模式",
variable=var,
fg="blue", # 文字颜色
bg="lightyellow", # 背景色
activebackground="pink", # 点击时的背景色
disabledforeground="gray", # 禁用时的颜色
selectcolor="green") # 选中时的背景色
check.pack()
# 禁用复选框
Button(root, text="禁用", command=lambda: check.config(state=DISABLED)).pack()
Button(root, text="启用", command=lambda: check.config(state=NORMAL)).pack()
root.mainloop()
|

实战示例 - 多选选项 📋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
from tkinter import *
root = Tk()
hobbies = ["阅读", "运动", "音乐", "游戏"]
vars = []
for hobby in hobbies:
var = BooleanVar()
Checkbutton(root, text=hobby, variable=var).pack(anchor="w")
vars.append(var)
def submit():
selected = [hobbies[i] for i, var in enumerate(vars) if var.get()]
print("选择了:", ", ".join(selected) or "无")
Button(root, text="提交", command=submit).pack()
root.mainloop()
|

总结 🎯
- 使用
variable=
参数绑定变量 (IntVar, BooleanVar 或 StringVar)
- 通过
command=
设置状态变化时的回调函数
config()
方法可动态修改 Checkbutton 属性
- 多个 Checkbutton 可以用列表管理变量
希望这份指南对你有帮助!(っ^▿^)💨