Tkinter组件:Checkbutton

news/2024/5/20 7:05:44

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 tkmaster = 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.mrgr.cn/p/24628572

相关文章

英语学习笔记7——Are you a teacher?

Are you a teacher? 你是教师吗? 词汇 Vocabulary name /neɪm/ n. 名字,名声 英文名字构成: 名 字 姓      given name family name  也叫做:first name last name      例:Yanyan Gao 例句&#xff1…

3本TOP期刊上线!5月刊源表已更新!

本周投稿推荐 SSCI • 2/4区经管类,2.5-3.0(录用率99%) SCIE(CCF推荐) • 计算机类,2.0-3.0(最快18天录用) SCIE(CCF-C类) • IEEE旗下,1/2…

获取系统时间

获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。 /*************************************************** file name:GetCurTime.c* author :momolyl@126.com* dat…

Jetpack Compose三:主题和基础控件的使用

设置主题 与Android View的主题定义方式不同,Jetpack Compose中的主题由许多较低级别的结构体和相关API组成,它们包括颜色、排版和形状属性。 Theme.kt控制工程的主题,它是一个可组合的Compose函数 最后主题函数ComposeStudyTheme的相关设置…

解决github无法克隆私有仓库,Repository not found问题(2024最新)

一、背景 这个问题出现,是你用了其他主机设备,需要重新clone私有库时,发现一直报找不到仓库,如下报错: remote: Repository not found.二、解决方法 (1)账号密码方式(已不支持&am…

libvips 一个最好用的高性能、低内存、跨平台的图片处理库

一个可以媲美OpenCV的开源库,它具有高性能、低内存、跨平台、无内存泄漏的特性。 项目简介 这是用C++开发的图像处理库,支持的API超过300多个,涵盖了算术、颜色、图片转换、卷积、形态、马赛克、合并、切割等。 支持多种图像格式,包括:JPEG、JPEG2000、JPEG-XL、TIFF、PNG…

缓存淘汰算法中的LRU(Least Recently Used)算法

缓存淘汰算法中,LRU(Least Recently Used)算法是一种常见的算法。它的基本思想是根据最近的访问情况来决定哪些数据被保留在缓存中,哪些数据被淘汰出去。 具体来说,当需要从缓存中淘汰数据时,LRU算法会选择…

Messari 报告摘要 :Covalent Network(CQT)2024 年第一季度表现

摘要: 尽管 CQT 代币流通供应量增加了 20%(新增 1.04 亿枚 CQT),但 CQT 的质押百分比仅从 2023 年第一季度的 22% 增长到了 2024 年第一季度的 29%。 CQT 的市值季度环比增长了 28%,多次达到 2.75 亿美元&#xff0c…

【设计模式】函数式编程范式工厂模式(Factory Method Pattern)

目录标题 定义函数式接口函数式接口实现类工厂类封装实际应用总结 定义函数式接口 ISellIPad.java /*** 定义一个函数式接口* param <T>*/ FunctionalInterface public interface ISellIPad<T> {T getSellIPadInfo();}函数式接口实现类 HuaWeiSellIPad.java pu…

Windows如何通过wsl2迅速启动Docker desktop的PHP的Hyperf项目容器?

一、安装WSL 什么是WSL&#xff1f; 官网&#xff1a;什么是WSL&#xff1f; Windows Subsystem for Linux (WSL) 是一个在Windows 10和Windows 11上运行原生Linux二进制可执行文件的兼容性层。 换句话说&#xff0c;WSL让你可以在Windows系统上运行Linux环境&#xff0c;而无需…

2022年最新的Asp.Net程序员学习路线图

给大家分享一个微软MVP整理的,2022年最新的Asp.Net程序员学习路线图。这个图的知识点,分为:1、个人必须掌握 2、进一步学习 3、兴趣 4、其他 5、可能需要学习。第1、2部分大家必须去掌握起来,其他的内容可以根据工作的需要、兴趣选择。 在Github已经针有人对路线图的每一个…

【复杂网络】如何用简易通俗的方式快速理解什么是“相对重要节点挖掘”?

什么是相对重要节点&#xff1f; 一、相对重要节点的定义二、如何区分相对重要节点与重要节点&#xff1f;1. 相对重要性与节点相似性2. 识别相对重要节点的两个阶段第一阶段&#xff1a;个体重要性值的计算第二阶段&#xff1a;累积重要性值的计算 三、相对重要节点挖掘算法1.…

【JAVA语言-第20话】多线程详细解析(二)——线程安全,非线程安全的集合转换成线程安全

目录 线程安全 1.1 概述 1.2 案例分析 1.3 解决线程安全 1.3.1 synchronized关键字 1.3.1.1 同步代码块 1.3.1.2 同步方法 1.3.2 使用Lock锁 1.3.2.1 概述 代码示例 1.4 线程安全的类 1.4.1 非线程安全集合转换成线程安全集合 线程安全 1.1 概述 指如果有多…

微信视频号怎么开店卖东西的?从开店到发货,具体流程来了

这两年&#xff0c;视频号逐渐展露头角&#xff0c;发展短&#xff0c;商家少&#xff0c;很多类目都没被商家占领&#xff0c;于是好多想创业的新手玩家就准备去视频号小店这个新平台闯一闯 那视频号小店是怎么开店卖东西的&#xff1f;今天我就给大家讲一讲视频号小店的正确…

Vue从入门到实战Day01

一、Vue快速上手 1. vue概念 概念&#xff1a;Vue是一个用于 构建用户界面的 渐进式 框架 构建用户界面&#xff1a;基于数据动态渲染页面渐进式&#xff1a;循序渐进的学习框架&#xff1a;一套完整的项目解决方案&#xff0c;提升开发效率 优点&#xff1a;大大提升开发效…

Star-CCM+通过将所有部件创建一个区域的方式分配至区域后发热功率的赋值方法介绍

前言 Star-CCM通过将所有部件创建一个区域的方式分配至区域后发热功率的赋值方法与上文介绍的方法基本一致。 赋值热源 ● 热源类型选择&#xff1a; 本文按照“总热源”的类型展开介绍。具体的操作方式如下图1所示&#xff0c;在区域内下的物理条件中的能量源选项选择总热…

API安全

一&#xff0c;什么是API API指的是应用程序编程接口&#xff08;Application Programming Interface&#xff09;&#xff0c;是一组定义了软件组件如何相互交互的规范。通过API&#xff0c;不同的软件可以相互通信和交换数据&#xff0c;实现不同软件之间的集成和互操作。 …

机器学习 | 时间序列预测中的AR模型及应用

自回归模型&#xff0c;通常缩写为AR模型&#xff0c;是时间序列分析和预测中的一个基本概念。它们在金融、经济、气候科学等各个领域都有广泛的应用。在本文中&#xff0c;我们将探索自回归模型&#xff0c;它们如何工作&#xff0c;它们的类型和实际例子。 自回归模型 自回…

英语学习笔记6——What make is it?

What make is it? 它是什么牌子的&#xff1f; make n.&#xff08;产品的&#xff09;品牌名称    v. 制作 区别&#xff1a;model n.&#xff08;产品的&#xff09;型号       n. 模型       n. 模特 make 指的是大的品牌名称&#xff0c; model 是旗下产品…