网站首页 > 技术文章 正文
在本文中,将介绍 tkinter Checkbox 复选框小部件以及如何有效地使用它。
复选框是一个允许选中和取消选中的小部件。复选框可以保存一个值,通常,当希望让用户在两个值之间进行选择时,可以使用复选框。
要创建复选框,请使用如下构造函数。
checkbox = tk.Checkbutton(master,
text='<checkbox label>',
command=check_changed,
variable=checkbox_var,
onvalue='<value_when_checked>',
offvalue='<value_when_unchecked>')
- text 参数:指定复选框的显示标签。
- command 参数:选中或取消选中复选框时调用的命令。
- variable 参数:保存复选框当前值的变量。选中复选框,则变量的值为 1。否则为 0。
- onvalue、offvalue 参数:指定 variable 变量 0 和 1 以外的其他值。
import tkinter as tk
from tkinter.messagebox import showinfo
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Checkbutton 复选框演示')
# 创建变量,保存复选框的值
agr = tk.StringVar()
# 定义函数,复选框状态发生变化就调用该函数
def agr_changed():
tk.messagebox.showinfo(title='是否同意', message=agr.get())
# 创建复选框
checkbox = tk.Checkbutton(root,
text='是否同意',
command=agr_changed,
variable=agr,
onvalue='同意',
offvalue='不同意')
checkbox.pack()
root.mainloop()

以下示例使用 indicatoron=0 选项取消复选框前面的小方块,取消复选框的 Text 并显示图像。
import tkinter as tk
from tkinter.messagebox import showinfo
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Checkbutton 复选框演示')
frame = tk.LabelFrame(root, text='请选择', padx=30, pady=10)
frame.pack(padx=100, pady=100)
checked_image = tk.PhotoImage(file="logo.png")
unchecked_image = tk.PhotoImage(file="logo2.png")
checkbutton_1 = tk.Checkbutton(frame, indicatoron=0, overrelief="sunken", image=unchecked_image, selectimage=checked_image)
checkbutton_1.pack(side=tk.LEFT)
checkbutton_2 = tk.Checkbutton(frame, indicatoron=0, overrelief="sunken", image=unchecked_image, selectimage=checked_image)
checkbutton_2.pack(side=tk.LEFT)
checkbutton_3 = tk.Checkbutton(frame, indicatoron=0, overrelief="sunken", image=unchecked_image, selectimage=checked_image)
checkbutton_3.pack(side=tk.LEFT)
checkbutton_4 = tk.Checkbutton(frame, indicatoron=0, overrelief="sunken", image=unchecked_image, selectimage=checked_image)
checkbutton_4.pack(side=tk.LEFT)
root.mainloop()

Checkbox 复选框选项
方法 | 说明 |
deselect() | 取消复选框选择。 |
select() | 选择复选框。 |
toggle() | 选择和取消选择之间切换。 |
以下示例设置两个按钮,利用 deselect() 和 select() 方法,全选和取消全选所有复选框。
import tkinter as tk
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Checkbutton 复选框演示')
def clear_selection():
cb1.deselect()
cb2.deselect()
cb3.deselect()
cb4.deselect()
cb5.deselect()
cb6.deselect()
def selection():
cb1.select()
cb2.select()
cb3.select()
cb4.select()
cb5.select()
cb6.select()
var1 = tk.BooleanVar()
var2 = tk.BooleanVar()
var3 = tk.BooleanVar()
var4 = tk.BooleanVar()
var5 = tk.BooleanVar()
var6 = tk.BooleanVar()
frame1 = tk.LabelFrame(root, text='Group 1', padx=30, pady=10)
frame1.pack(side=tk.LEFT, padx=50)
frame2 = tk.LabelFrame(root, text='Group 2', padx=30, pady=10)
frame2.pack(side=tk.RIGHT, padx=50)
cb1 = tk.Checkbutton(frame1, text='Number 1', variable=var1)
cb1.pack()
cb2 = tk.Checkbutton(frame1, text='Number 2', variable=var2)
cb2.pack()
cb3 = tk.Checkbutton(frame1, text='Number 3', variable=var3)
cb3.pack()
cb4 = tk.Checkbutton(frame2, text='Number 4', variable=var4)
cb4.pack()
cb5 = tk.Checkbutton(frame2, text='Number 5', variable=var5)
cb5.pack()
cb6 = tk.Checkbutton(frame2, text='Number 6', variable=var6)
cb6.pack()
button1 = tk.Button(root, text='Unselect all', command=clear_selection)
button1.pack()
button2 = tk.Button(root, text='Select All', command=selection)
button2.pack()
root.mainloop()

Checkbox 复选框选项
选项 | 说明 |
master | 指定复选框的父级窗口或框架。 |
variable | 保存复选框当前值的变量,用于存储复选框的选中状态。 |
onvalue | 指定当复选框被选中时,variable变量的值。 |
offvalue | 指定当复选框未被选中时,variable变量的值。 |
command | 指定一个函数,当复选框的状态改变时,该函数将被调用。 |
text | 指定复选框旁边显示的文本。 |
image | 指定一个图像对象,显示在复选框旁边。 |
compound | 指定图像和文本的对齐方式,如TOP, BOTTOM, LEFT, RIGHT。 |
invcmd | 指定一个函数,当复选框的状态改变时,如果command指定的函数返回False,则调用此函数。 |
selectcolor | 指定复选框被选中时的背景颜色。 |
height | 指定复选框的高度(通常用于显示图像)。 |
width | 指定复选框的宽度(通常用于显示文本)。 |
anchor | 指定文本的对齐方式,如W(西), E(东), N(北), S(南), CENTER。 |
justify | 指定文本的对齐方式,如LEFT, RIGHT, CENTER。 |
padx | 指定复选框与其文本之间的水平填充。 |
pady | 指定复选框与其文本之间的垂直填充。 |
indicatoron | 是否绘制前边作为选择的小方块,设置为0,可以将整个小部件变成复选框。 |
猜你喜欢
- 2024-12-16 python GUI编程:Canvas组件
- 2024-12-16 Python GUI 编程:tkinter 初学者入门指南——微调框
- 2024-12-16 Python GUI项目实战(三)实现信息查询功能
- 2024-12-16 如何用python做一个简单的输入输出交互界面?
- 2024-12-16 Python GUI 编程:tkinter 初学者入门指南——按钮
- 2024-12-16 python GUI编程:Button组件
- 2024-12-16 Python GUI项目实战(八)修改密码
- 2024-12-16 学习编程第163天 python编程 GUI窗体最简单的可视界面
- 2024-12-16 推荐一款Python的GUI可视化工具
- 2024-12-16 python使用tkinter进行桌面GUI开发简单介绍
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)