Tkinter组件:Checkbutton

news2025/1/17 3:46:25

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.coloradmin.cn/o/1653589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

保护公司机密:避免员工带着数据说拜拜

公司的核心资产之一就是数据。无论是客户信息、研发代码、内部决议、财务报告、商业合同、设计图纸等都是公司的重要资产。如果这些数据在员工离职时被带走,或在员工在职期间不当行为导致数据泄露,将给公司带来重大损失。 然而,保护这些数据…

大模型微调之 在亚马逊AWS上实战LlaMA案例(四)

大模型微调之 在亚马逊AWS上实战LlaMA案例(四) 在 Amazon SageMaker JumpStart 上微调 Llama 2 以生成文本 Meta 能够使用Amazon SageMaker JumpStart微调 Llama 2 模型。 Llama 2 系列大型语言模型 (LLM) 是预先训练和微调的生成文本模型的集合&#x…

漏洞伴随App无时不在,该怎么办?

漏洞攻击、加密被破坏以及数据泄露是App面临的三大重要安全风险,无论开发者如何防范,攻击者往往会找到新的方法,并依靠最新的工具来破坏App安全性。 统计数据表明,大约82%的漏洞是在App程序代码中发现的。如果尽快发现…

百度百科怎么修改词条

百度百科是一个由网民编辑内容的网络百科全书,支持用户添加或修改词条。以下是关于如何修改百度百科词条的详细步骤和注意事项。 1. 登录百度百科账户 首先,你需要登录到百度百科账户。如果你还没有百度账号,你需要先注册一个。注册完成后&a…

【vue+el-upload】当action=“#“,代表不使用默认上传,使用自定义上传,http-request获取文件流

el-upload有多种上传行为: 1、立即上传: 当 action 属性被赋予一个有效的 URL 时,一旦用户选择了文件,el-upload 组件会立即自动将文件上传到指定的服务器地址。 2、不立即上传(自定义触发): 如…

2024-5-3学习笔记 虚拟继承原理

目录 原理 总结 前面提到过,解决菱形继承产生的数据二义性问题和数据冗余,就需要用到虚拟继承,关于它是如何解决的,我们来一起研究。 class Person { public :string _name ; // 姓名 }; class Student : virtual public Perso…

微软exchange邮箱发送

使用java发送exchange类型的邮件&#xff0c;foxmail中配置如下图&#xff1a; 需要的maven依赖如下&#xff1a; <dependency><groupId>com.microsoft.ews-java-api</groupId><artifactId>ews-java-api</artifactId><version>2.0</ve…

以gitee为例的git入门使用指北

安装git 在linux中我们首先需要使用 sudo apt install git来下载git 在windows中可以下载msysGit 链接&#xff1a;https://git-scm.com/download/win gitee准备 申请账号 建立仓库 ​ 点击新建仓库 这里一般是私有库&#xff0c;点击创建&#xff0c;这时你就拥有一个线上…

LearnOpenGL(九)之材质

一、材质 在现实世界里&#xff0c;每个物体会对光产生不同的反应。比如&#xff0c;钢制物体看起来通常会比陶土花瓶更闪闪发光&#xff0c;一个木头箱子也不会与一个钢制箱子反射同样程度的光。在opengl中&#xff0c;我们可以针对每种表面定义不同的材质(Material)属性来模…

Web自动化测试入门:前端页面的组成分析详解!

在进行Web自动化测试时&#xff0c;了解前端页面的组成是非常重要的&#xff0c;因为页面的不同元素和交互会直接影响测试的实施和结果。本文将从0到1详细规范地介绍前端页面的组成。 1. 页面结构 一个典型的前端页面通常由HTML、CSS和JavaScript三部分组成。HTML负责页面的整…

STL速查

容器 (Containers) 图解容器 支持随机访问 stringarrayvectordeque支持支持支持支持 string 类 构造函数 string(); ------创建一个空的字符串 例如: string str;string(const char* s); ------使用字符串s初始化string(const string& str); ------拷贝构造 赋值操作…

Spring中FactoryBean的作用和实现原理

Spring中FactoryBean的作用和实现原理 BeanFactory与FactoryBean&#xff0c;相信很多刚翻看Spring源码的同学跟我一样很好奇这俩货怎么长得这么像&#xff0c;分别都是干啥用的。 BeanFactory是Spring中Bean工厂的顶层接口&#xff0c;也是我们常说的SpringIOC容器&#xff…

pip install flash_attn 报错

目录 报错截图关键问题nvcc -V 查看 cuda 版本查看 usr/local/cuda-* 安装的cuda版本设置 cuda-12.0 &#xff08;添加入环境变量&#xff09;FlashAttention 安装成功 报错截图 ImportError: This modeling file requires the following packages that were not found in you…

OSPF Stub区域

原理概述 OSPF 协议定义了多种区域&#xff08; Area &#xff09;类型&#xff0c;其中比较常见的有 Stub 区域和 Totally Stub 区域。区域的类型决定了在这个区域当中所存在的 LSA 的类型。 Stub 区域不允许 Type-4和 Type-5 LSA 进入&#xff0c;该区域会通过 Type-3 LSA…

Elasticsearch中的三种分页策略深度解析:原理、使用及对比

码到三十五 &#xff1a; 个人主页 在Elasticsearch中&#xff0c;分页是查询操作中不可或缺的一部分。随着数据量的增长&#xff0c;如何高效地分页查询数据急需需要面对的问题。Elasticsearch提供了三种主要的分页方式&#xff1a;from size、scroll和search_after。下面详细…

【Kubernetes集群一主二从安装教程】

文章目录 环境准备主机间做信任安装ansible工具 升级内核版本使用elrepo源升级内核查看最新版内核安装最新的内核版本设置系统默认内核设置默认内核为我们刚才升级的内核版本 初始化关闭防火墙关闭selinux关闭swap修改主机名修改hosts文件将桥接的IPv4流量传递到iptables的链配…

谈谈IP地址

IP地址 IP地址概念动态分配 IP(DHCP)NAT机制(网络转换机制)IPv6 IP地址组成特殊的IP地址 IP地址 IP协议报文结构: 概念 IP地址: 描述了主机的具体位置.有32位,利用点分十进制的方式来表示.例如: 192.168.190.77 32位ip地址表示的数据非常有限,42亿九千万…, 那么ip地址不够用…

The Sandbox 案例|Web3 项目引领娱乐业的发展

Web3 如何通过 RZR 系列等项目开创娱乐新纪元。 我们已经看到技术和 Web3 如何颠覆金融和银行等行业&#xff0c;然而娱乐业在不断变化的环境中似乎发展滞后。传统的制片厂生态系统、高成本制作以及历史悠久的运作模式一直占据主导地位&#xff0c;而 Web3 项目的出现为创作者提…

数据结构学习/复习11--二叉树分治与递归思想练习题

一、二叉树相关练习题 1.判断单值二叉树 2. 判断两颗树是否相同 3.先序遍历的实现 注意事项&#xff1a;此处中的数组的下标用指针控制&#xff0c;因为受到递归与函数栈帧创建与销毁的影响。最后的返回值是指向前序遍历排好后的数组指针 4.判断一棵树是否是另一棵树的子树 …

​​​【收录 Hello 算法】第 4 章 数组与链表

第 4 章 数组与链表 数据结构的世界如同一堵厚实的砖墙。 数组的砖块整齐排列&#xff0c;逐个紧贴。链表的砖块分散各处&#xff0c;连接的藤蔓自由地穿梭于砖缝之间。 本章内容 4.1 数组4.2 链表4.3 列表4.4 内存与缓存 *4.5 小结