Python GUI 编程:tkinter 初学者入门指南——复选框
在本文中,将介绍 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,可以将整个小部件变成复选框。 |
相关文章:

Python GUI 编程:tkinter 初学者入门指南——复选框
在本文中,将介绍 tkinter Checkbox 复选框小部件以及如何有效地使用它。 复选框是一个允许选中和取消选中的小部件。复选框可以保存一个值,通常,当希望让用户在两个值之间进行选择时,可以使用复选框。 要创建复选框,…...

使用vscode导入库失败解决方法
导入库失败原因 在使用vscode写python代码时,有时会遇见导入库失败的情况,如下图:无法解析导入“xxxxx” 或者 运行时报错:ModuleNotFoundError: No module named xxxxx。 原因可能有: 根本没有下载库;…...

无线网卡知识的学习-- mac80211主要代码流程
一 简介概要: mac80211驱动程序作为Linux内核中管理和控制无线网络接口的核心模块,其主要流程涵盖了从数据帧接收到发送的完整过程。 主要覆盖了7个方面: 1. 数据帧接收流程,2. 数据帧发送流程 3. 频道管理和切换 4. 接口管理 5. 安全和认证 6. 管理和调试 7. 注册和初…...

关于k8s集群高可用性的探究
1. k8s的高可用的核心是什么? 说到核心、本质 意味着要从物理层来考虑技术 k8s是一个容器编排管理工具,k8s受欢迎的时机 是docker容器受欢迎时,因为太多的docker容器,管理起来是一个大工程 那么刚好k8s是google自己用了十来年…...

保姆级Pinpoint(APM)实战教程
什么是Pinpoint Pinpoint是由韩国NAVER公司开发并开源的一款应用程序管理工具,主要针对大规模分布式系统进行性能监控和故障诊断。通过跟踪分布式应用程序之间的事务,帮助分析系统的整体结构以及其中的组件是如何相互连接的。 与其对标的还有Twitter的Zi…...

使用SpringBoot自定义注解+AOP+redisson锁来实现防接口幂等性重复提交
1 前提,整合好springboot和redis,redisson的环境 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 2 编写自定义注解,注解的作用是标记…...

k8s和ipvs、lvs、ipvsadm,iptables,底层梳理,具体是如何实现的
计算节点的功能: 提供容器运行的环境 kube-proxy的主要功能: 术业有专攻, kube-proxy的主要功能可以概括为4个字 网络规则 那么kube-proxy自己其实是个daemonset控制器跑的 每个节点上都有个的pod 它负责网络规则 其实呢 它还是个小…...

三、归一化与标准化
归一化与标准化 前言一、最小最大值归一化1.1 原理(公式)1.2 API 介绍1.2.1 参数介绍1.2.2 属性介绍1.2.3 注意事项1.2.4 代码演示 1.3 举例说明 二、标准化2.1 原理(公式)2.2 API 介绍2.2.1 参数介绍2.2.2 属性介绍2.2.3 注意事项…...

B2105 矩阵乘法
B2105 矩阵乘法 #include <iostream> using namespace std; int main(){int n,m,k;cin>>n>>m>>k;int arr1[n][m];int arr2[m][k];for(auto & line:arr1){for(auto & x: line){cin>>x;}}for(auto & line:arr2){for(auto & x: lin…...

centos之下的mysql8的安装
文章目录 1.mysql.com进入(网址栏)2.xshell操作2.1拖拽上传2.2安装发布包2.3检查情况2.4安装mysql2.5手动启动2.6查看状态2.7查看随机密码2.8登录2.9重置密码 1.mysql.com进入(网址栏) 找下面的这个download按钮: 一直往下面划:找到下面的这个 下面的这个…...

计算机导论
概述 计算机简史 1935年代,英国数学家图灵(Alan Turing)提出“图灵机”,奠定了计算机的理论基础。 1952年,冯诺依曼确定了计算机由运算器、控制器、存储器、输入、输出等5部分组成(Von Neumann 体系结构)。 60年代…...

力扣209-长度最小的子数组-滑动窗口思想
题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 输入&am…...

Xilinx 7系列FPGA PCI Express IP核简介
前言:Xilinx7系列FPGA集成了新一代PCI Express集成块,支持8.0Gb/s数据速率的PCI Express 3.0。本文介绍了7系列FPGA PCIe Gen3的应用接口及一些特性。 1. PCI Express规范演进 PCIe是一种高速串行计算机扩展总线标准,旨在替代传统的PCI和AG…...

红包雨html
1、分享一个红包雨html代码。 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>红包雨小游戏</ti…...

js 基础补充3
1. 闭包 在函数内部定义的函数,可以访问改函数的属性和方法 私有属性 延长变量的生命周期,更好的避免命名冲突 缺点:内存消耗比较大,不建议频繁使用 2. js 原型 原型链 访问对像的属性方法,不光会在对象上查找还会在…...

Invalid bean definition with name ‘employeeMapper‘ defined in file
参考以下博客: <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version> </dependency> 总结: 1. 拉取老项目的时候要特…...

悦享驾驶,乐在旅途,首选江铃集团新能源易至EV3青春版
金秋时节,天高气爽,正是出游的好时节。不论是家庭自驾游,还是朋友结伴出游,一款好看又好开的车绝对是提升旅行品质的重要因素。江铃集团新能源易至汽车EV3青春版,凭借其超高安全性、便捷操作性、卓越性能,成…...

测试WIFI和以太网的TCP带宽、UDP带宽和丢包率、延时
一、测试TCP、UDP的带宽 作为服务器:iperf3 -s -i 1 (或者用CloudCampus软件,或者iperf magic) Wi-Fi 发送、接收吞吐率的测试_magic iperf-CSDN博客 车机作为iperf3服务器,电脑作为iperf3得客户端,分别…...

redis 第155节答疑 源码分析Hash类型ziplist结构和zlentry实体解析
155属性 zlbytes zltail zllen entryX zlend 类型 uint32 t uint32 t uint16 t 列表节点 uint8 t 长度 4字节 4字节 2字节 不定 1字节 用途 记录整个压缩列表占用的内存字节数:在对压缩列表进行内存重分配,或者计算 zlend 的位置时使用 记录压缩列表表尾节点距离压缩…...

IDE使用技巧与插件推荐
集成开发环境(IDE)是开发者日常工作中的重要工具,合理使用IDE和合适的插件,能大大提高开发效率。本文将分享常见IDE(如VS Code、IntelliJ IDEA等)的一些高效使用技巧,以及开发过程中常用的插件推…...

1020接口测试面试题随记
1.测试中对于上下游承接的业务是怎么处理的 针对上下游承接的业务,我会采取以下措施进行处理:首先,明确上下游系统的接口和依赖关系,确保理解数据流和业务逻辑的连接点。其次,进行接口测试,验证上下游系统…...

Zotero7最新(2024)翻译问题——配置 百度API翻译
在使用翻译之前,首先要确保已经安装了插件:Translate for Zotero 关于插件的安装可以参考这篇文章: Zotero7最新(2024)安装、配置步骤-CSDN博客 接下来进入正题。 当使用Zotero7对英文文献翻译时,可能会…...

python程序设计员—练习笔记
目录 基础处理 字符串列表字典运算符正则表达式re库requestsBeautiful Soupjieba库分词模式基于TF-IDF算法的关键词提取 基于TextRank算法的关键词提取pandas 打开有多个表的.xlsx文件 基础处理 字符串 str_ str_.lower()lower()函数:将字符中的大写字母转换成小…...

1.DBeaver连接hive数据库
1.hive开启远程服务,linux中直接输入:hiveserver2 2.解压dbeaver和hive-jdbc-2.1.1.zip 3.双击打开 4.数据库,新建连接 5.搜索hive 6.配置参数 7.编辑驱动设置 8.添加jar包 9.测试连接 10.右击,新建sql编辑器 11.执行sql 12.调整字…...

CODESYS随机动态图案验证码制作详细案例(三)
#使用CODESYS软件模仿网页端动态图案验证码的制作详细案例# 前言: 通过上篇图案验证码的实际测试,我们已经完成了该案例的制作,但是在项目应用中,我们想对该功能直接调用,就需要将具有一定功能的程序代码或可视化进行封装成库文件。我们熟知,CODESYS有丰富的库文件,有…...

NodeJS 使用百度翻译API
在大数据处理中,经常需要大批量地翻译短小的文字,使用在线翻译平台的API 调用能够大幅度提高效率。 最近尝试了一下。 第一步在百度翻译开放平台注册 百度翻译开放平台 (baidu.com) 申请APPID 和SECRET加密码 源代码(mjs) …...

摩熵数科数据产品阵容BCPM
摩熵数科基本介绍 摩熵数科(成都)医药科技有限公司BCPMdata Pharma Technology (Chengdu)Co.,Ltd以“探索生命科学数据本源,构建全产业链数据应用生态”为愿景,致力于成为生命科学领域全球领先的数据系统与…...

ros2 .idl文件生成C、C++代码
一、包目录结构 rosidl_generator_c 依赖rosidl_cmake、rosidl_typesupport_interface、ament_index_python、rosidl_parser rosidl_generator_cpp 依赖 rosidl_parser、rosidl_runtime_cpp、rosidl_generator_c rosidl_parser :The parser for .idl ROS interfa…...

scrapy的xpath在控制台可以匹配,但是到了代码无法匹配(无法匹配tbody标签)
问题 使用xpath-helper可以匹配到,然后scrapy却无法 然后写入html来看看 发现根本就没有tbody,太可恶了 解决 方法1 不使用tbody就可以 方法2 使用或运算符 | big_list response.xpath("//div[classChannelClasssNavContent]/table/tbody/tr[1]/td/table/tbody/t…...

OpenCL内存模型
OpenCL将内存划分成主机内存和设备内存。主机内存可在主机上使用,其并不在OpenCL的定义范围内。使用对应的OpenCL API可以进行主机和设备的数据传输,或者通过共享虚拟内存接口进行内存共享。而设备内存,指定是能在执行内核中使用的内存空间。…...