Tkinter组件:Checkbutton

Tkinter组件:Checkbutton

在这里插入图片描述

Checkbutton(多选按钮)组件用于实现确定是否选择的按钮。Checkbutton 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被自动执行。

Checkbutton 组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键)。默认情况下,tab 按键被用于在按钮间切换。

1. 何时使用 Checkbutton 组件?

Checkbutton 组件被用于作为二选一的按钮(通常为选择“开”或“关”的状态),当你希望表达“多选多”选项的时候,可以将一系列 Checkbutton 组合起来使用。

但是处理“多选一”的问题,还是交给 Radiobutton 和 Listbox 组件来实现吧。

2. 用法

(参考 Button 组件的用法)

使用 Checkbutton,你必须创建一个 Tkinter 变量用于存放按钮的状态:

from tkinter import *

master = Tk()

var = IntVar()

c = Checkbutton(master, text="我是帅锅", variable=var)
c.pack()

mainloop()

img

默认情况下,variable 选项设置为 1 表示选中状态,反之设置为 0。你可以使用 onvalue 和 offvalue 选项修改它们的值,例如下边代码,只要 var 被设置为“T”即选中状态,设置为“F”则相反:

import tkinter  as tk

master = tk.Tk()

var = tk.StringVar()
var.set("T")
c = tk.Checkbutton(master, text="你喜欢Python吗", variable=var, onvalue="T", offvalue="F")
c.pack()

tk.mainloop()

img

如果你需要同时跟踪 variable 选项以及 Checkbutton 组件对象,你不妨可以试试将两者结合起来(下边在 CheckButton 组件对象中新建一个 var 变量,存放 variable 的值 v):

v = tk.IntVar()
c = tk.Checkbutton(master, text="加特技", variable=v)
c.var = v

如果你的 Tkinter 代码是放在类中的(在实际编程中你就应该这么干),那么将 variable 选项的值作为属性存储可能是更好的选择:

def __init__(self, master):
    self.var = tk.IntVar()
    c = tk.Checkbutton(master, text="DUANG~", variable=self.var, command=self.cb)
    c.pack()

def cb(self, event):
    print "variable is", self.var.get()

3. 参数

Checkbutton(master=None, **options) (class) 

master – 父组件

**options – 组件选项,下方表格详细列举了各个选项的具体含义和用法:

选项说明
activebackground1. 设置当 Checkbutton 处于活动状态(通过 state 选项设置状态)的背景色 2. 默认值由系统指定
activeforeground1. 设置当 Checkbutton 处于活动状态(通过 state 选项设置状态)的前景色 2. 默认值由系统指定
anchor1. 控制文本(或图像)在 Checkbutton 中显示的位置 2. “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, 或者 “center” 来定位(ewsn 代表东西南北,上北下南左西右东) 3. 默认值是 “center”
background1. 设置背景颜色 2. 默认值由系统指定
bg跟 background 一样
bitmap1. 指定显示到 Checkbutton 上的位图 2. 如果指定了 image 选项,则该选项被忽略
borderwidth1. 指定 Checkbutton 的边框宽度 2. 默认值由系统指定,通常是 1 或 2 像素
bd跟 borderwidth 一样
command1. 指定于该按钮相关联的函数或方法 2. 当按钮被按下时由 Tkinter 自动调用对应的函数或方法 3. 如果不设置此选项,那么该按钮被按下后啥事儿也不会发生
compound1. 控制 Checkbutton 中文本和图像的混合模式 2. 默认情况下,如果有指定位图或图片,则不显示文本 3. 如果该选项设置为 “center”,文本显示在图像上(文本重叠图像) 4. 如果该选项设置为 “bottom”,“left”,“right” 或 “top”,那么图像显示在文本的旁边(如 “bottom”,则图像在文本的下方) 5. 默认值是 NONE
cursor1. 指定当鼠标在 Checkbutton 上飘过的时候的鼠标样式 2. 默认值由系统指定
disabledforeground1. 指定当 Checkbutton 不可用的时候前景色的颜色 2. 默认值由系统指定
font1. 指定 Checkbutton 中文本的字体 2. 一个 Checkbutton 只能设置一种字体 3. 默认值由系统指定
foreground1. 设置 Checkbutton 的文本和位图的颜色 2. 默认值由系统指定
fg跟 foreground 一样
height1. 设置 Checkbutton 的高度 2. 如果 Checkbutton 显示的是文本,那么单位是文本单元 3. 如果 Checkbutton 显示的是图像,那么单位是像素(或屏幕单元) 4. 如果设置为 0 或者干脆不设置,那么会自动根据 Checkbutton 的内容计算出高度
highlightbackground1. 指定当 Checkbutton 没有获得焦点的时候高亮边框的颜色 2. 默认值由系统指定,通常是标准背景颜色
highlightcolor1. 指定当 Checkbutton 获得焦点的时候高亮边框的颜色 2. 默认值由系统指定
highlightthickness1. 指定高亮边框的宽度 2. 默认值是 1
image1. 指定 Checkbutton 显示的图片 2. 该值应该是 PhotoImage,BitmapImage,或者能兼容的对象 3. 该选项优先于 text 和 bitmap 选项
indicatoron1. 指定前边作为选择的小方块是否绘制 2. 默认是绘制的 3. 该选项会影响到按钮的样式,如果设置为 False,则点击后该按钮变成 “sunken”(凹陷),再次点击变为 “raised”(凸起)
justify1. 定义如何对齐多行文本 2. 使用 “left”,“right” 或 “center” 3. 注意,文本的位置取决于 anchor 选项 4. 默认值是 “center”
offvalue1. 默认情况下,variable 选项设置为 1 表示选中状态,反之设置为 0 2. 设置 offvalue 的值可以自定义未选中状态的值(详见上方用法举例)
onvalue1. 默认情况下,variable 选项设置为 1 表示选中状态,反之设置为 0 2. 设置 onvalue 的值可以自定义选中状态的值(详见上方用法举例)
padx1. 指定 Checkbutton 水平方向上的额外间距(内容和边框间) 2. 默认值是 1
pady1. 指定 Checkbutton 垂直方向上的额外间距(内容和边框间) 2. 默认值是 1
relief1. 指定边框样式 2. 该值通常是 “flat”,除非你设置 indicatoron 选项为 False 3. 如果 indicatoron 为 False,你还可以设置 “sunken”,“raised”,“groove” 或 “ridge”
selectcolor1. 选择框的颜色(就是打勾勾的那个正方形小框框) 2. 默认值由系统指定
selectimage1. 设置当 Checkbutton 为选中状态的时候显示的图片 2. 如果没有指定 image 选项,该选项被忽略
state1. 指定 Checkbutton 的状态 2. 默认值是 “normal” 3. 另外你还可以设置 “active” 或 “disabled”
takefocus1. 如果是 True,该组件接受输入焦点(用户可以通过 tab 键将焦点转移上来) 2. 默认值是 False
text1. 指定 Checkbutton 显示的文本 2. 文本可以包含换行符 3. 如果设置了 bitmap 或 image 选项,该选项则被忽略
textvariable1. Checkbutton 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容 2. 如果变量被修改,Checkbutton 的文本会自动更新
underline1. 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键) 2. 默认值是 -1 3. 例如设置为 1,则说明在 Checkbutton 的第 2 个字符处画下划线
variable1. 将 Checkbutton 跟一个 Tkinter 变量关联 2. 当按钮按下时,该变量在 onvalue 和 offvalue 之间切换 3. 这个切换的过程是完全自动的
width1. 设置 Checkbutton 的宽度 2. 如果 Checkbutton 显示的是文本,那么单位是文本单元 3. 如果 Checkbutton 显示的是图像,那么单位是像素(或屏幕单元) 4. 如果设置为 0 或者干脆不设置,那么会自动根据 Checkbutton 的内容计算出宽度
wraplength1. 决定 Checkbutton 的文本应该被分成多少行 2. 该选项指定每行的长度,单位是屏幕单元 3. 默认值是 0

4. 方法

deselect():取消 Checkbutton 组件的选中状态,也就是设置 variable 为 offvalue。

flash():刷新 Checkbutton 组件,该方法将重绘 Checkbutton 组件若干次(在"active" 和 “normal” 状态间切换)。

invoke():调用 Checkbutton 中 command 选项指定的函数或方法,并返回函数的返回值。-- 如果 Checkbutton 的state(状态)"disabled"是 (不可用)或没有指定 command 选项,则该方法无效。

select():将 Checkbutton 组件设置为选中状态,也就是设置 variable 为 onvalue。

回函数的返回值。-- 如果 Checkbutton 的state(状态)"disabled"是 (不可用)或没有指定 command 选项,则该方法无效。

select():将 Checkbutton 组件设置为选中状态,也就是设置 variable 为 onvalue。

toggle(): 切换 Checkbutton 组件的状态(选中 -> 未选中 / 未选中 -> 选中)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/604923.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【汇编语言小练习输入两个数字然后输出它们的和】

这个程序是用汇编语言编写一个简单的程序,它将从键盘输入两个数字,然后输出它们的和。 .MODEL SMALL .STACK 100H.DATAINPUT_MSG1 DB Enter the first number: $INPUT_MSG2 DB 13, 10, Enter the second number: $RESULT_MSG DB 13, 10, The sum is: $N…

【抽样调查】分层抽样上

碎碎念:在大一大二时听课有的时候会发现听不太懂,那时候只觉得是我自己的基础不好的原因,但现在我发现“听不懂”是能够针对性解决的。比如抽样调查这门课,分析过后我发现我听不懂的原因之一是“没有框架”,一大堆知识…

2024年第六届世界软件工程研讨会(WSSE 2024)即将召开!

2024年第六届世界软件工程研讨会(WSSE 2024)将于2024年9月13-15日在日本京都举行。软件工程领域的发展离不开各位专家学者和业界精英的共同努力和贡献。WSSE 2024将就软件工程领域的最新研究成果、实践经验和发展趋势进行深入交流和探讨,汇聚…

Ubuntu将软件图标添加到应用列表

一.简介snap snap和yum,apt一样都是安装包工具,但是snap里的软件源是自动更新到最新版本,最好用 比如Ubuntu的软件商城就是使用的snap软件包 二. Ubuntu软件商城更新 1.ps -ef | grep snap-store 查询并kill snap-store的所有进程 2.sudo …

【Linux进程间通信(六)】深入理解 System V IPC

(一)引入 (二)IPC 命名空间 (三)ipc_ips结构体 (四)ipc_id_ary结构体 (五)kern_ipc_perm结构体 (六)操作系统对IPC资源是如何管理…

县供电公司员工向媒体投稿发文章用亲身经历告诉你并不难

在县供电公司的日子里,我肩负着一项至关重要的使命——信息宣传工作。这不仅仅是一份职责,更是连接公司与外界的桥梁,通过新闻稿件传递我们的声音,展示我们的成果。然而,回忆起刚刚踏入这个领域的时光,那段经历至今让我感慨万千。 初涉投稿,步履维艰 刚接手这项工作时,我的投稿…

探索DeepSeek平台:新一代MoE模型的深度体验

简介 DeepSeek是一个创新的人工智能平台,它最近推出了其最新版本的模型——DeepSeek-V2 MoE(Mixture of Experts)。这个平台不仅提供了一个交互式的聊天界面,还提供了API接口,让用户可以更深入地体验和利用这一先进的…

全体模型师请做好日入过万的准备!3D模型库海量资源,老子云平台免费用

在数字化的大背景下,3D转型已然成为了多行业关注的重点战略版块。无论是科技、金融、互联网、化工、建筑等等各个行业都在加速布局,3D手段会成为下一个重要的技术风口。也正因如此,3D市场潜能巨大,并且3D需求每年都在暴涨&#xf…

3d中如何对模型粉碎处理?---模大狮模型网

在3D建模和动画设计中,模型粉碎处理是一种引人注目的效果,可以为场景增添动态和震撼的视觉效果。无论是用于电影特效、游戏设计还是虚拟现实项目,都可以通过模型粉碎处理来创造出引人入胜的场景。本文将介绍如何在3D中轻松实现模型粉碎处理&a…

本地连接服务器Jupyter【简略版】

首先需要在你的服务器激活conda虚拟环境: 进入虚拟环境后使用conda install jupyter命令安装jupyter: 安装成功后先不要着急打开,因为需要设置密码,使用jupyter notebook password命令输入自己进入jupyter的密码: …

Windows端之Python3.9及以上高版本工程打包得到的exe逆向工程解包得到pyc文件进而得到py文件的流程实现

参考来自 【python逆向 pyc反编译】python逆向全版本通杀_python反编译pyc-CSDN博客https://blog.csdn.net/zjjcxy_long/article/details/127346296Pyinstaller打包的exe之一键反编译py脚本与防反编译_pyinstaller防止反编译-CSDN博客https://blog.csdn.net/as604049322/artic…

「网络流 24 题」魔术球 【最小路径覆盖】

「网络流 24 题」魔术球 注意这里的球是依次放置&#xff0c;也就是说如果当前放到第 i i i 号球&#xff0c;那么 1 → i − 1 1 \rarr i - 1 1→i−1 号球都已经放好了&#xff0c;否则可以放无数个球 思路 首先我们对于 i < j 且 i j 完全平方数 i < j 且 i j…

在思科和华为上实现两个主机A,B A能ping通B,B不能ping通A

1.华为实验的topo如下 常规状态下任意两台主机都是可以ping通的 此时的需求是PC4能ping通PC2和PC3但是PC2和PC3不能ping通PC4 这里需要用到ACL策略 在接口上调用 验证&#xff1a; PC4能ping通PC2和PC3 PC2和PC3不能ping通PC4 2.思科类似 正常情况下是都能互相ping通 加上ac…

嵌入式Linux的QT项目CMake工程模板分享及使用指南

在嵌入式linux开发板上跑QT应用&#xff0c;不同于PC上的开发过程。最大的区别就是需要交叉编译&#xff0c;才能在板子上运行。 这里总结下嵌入式linux环境下使用CMake&#xff0c;嵌入式QT的CMake工程模板配置及如何使用&#xff0c;分享给有需要的小伙伴&#xff0c;有用到的…

Github的使用教程(下载和上传项目)

根据『教程』一看就懂&#xff01;Github基础教程_哔哩哔哩_bilibili 整理。 1.项目下载 1&#xff09;直接登录到源码链接页或者通过如下图的搜索 通过编程语言对搜索结果进一步筛选。 2&#xff09;红框区为项目的源代码&#xff0c;README.md &#xff08;markdown格式&…

企业如何用数字化为预提摊销业务赋能?

对于企业来说&#xff0c;想要实现系统化、智能化、自动化的预提摊销管理&#xff0c;需要做足哪些功课&#xff1f;常见场景下的业务难题又该如何破解&#xff1f;今天胜意科技就给大家介绍一下&#xff0c;企业如何通过数字化手段搞定预提摊销业务难题。 一、预提摊销痛点 在…

Spring后端参数校验——自定义校验方式(validation)

文章目录 开发场景技术名词解释——Spring Validation自定义校验 技术细节小结1.实体参数校验2.自定义校验 完整代码 开发场景 业务场景&#xff1a;新增文章 基本信息 请求路径&#xff1a;/article 请求方式&#xff1a;POST 接口描述&#xff1a;该接口用于新增文章(发布文…

小样本学习

小样本学习的概念最早从计算机视觉(computer vision)[8]领域兴起, 近几年受到广泛关注, 在图像分类任务中已有很多性能优异的算法模型[9-11].但是在自然语言处理领域(natural language processing)[12]的发展较为缓慢, 原因在于图像和语言特性不同.图像相比文本更为客观, 所以当…

学习方法的重要性

原贴&#xff1a;https://www.cnblogs.com/feily/p/13999204.html 原贴&#xff1a;https://36kr.com/p/1236733055209095 1、 “一万小时定律”的正确和误区 正确&#xff1a; 天才和大师的非凡&#xff0c;不是真的天资超人一等&#xff0c;而是付出了持续不断的努力&…

C++:菱形继承与菱形虚拟继承

一、菱形继承 单继承&#xff1a;一个子类只有一个直接父类时称这个继承关系为单继承 多继承&#xff1a;一个子类有两个或以上直接父类时称这个继承关系为多继承 菱形继承&#xff1a;菱形继承是多继承的一种特殊情况&#xff0c;派生类继承自两个间接基类&#xff0c;而这…
最新文章