当前位置: 首页 > news >正文

11 Radiobutton组件

11 Radiobutton组件

Tkinter 是 Python 的标准图形用户界面库,它提供了一个 Radiobutton 控件,用于在一组选项中让用户选择一个选项。Radiobutton 通常用于提供一组互斥的选项,用户只能选择其中一个。

Radiobutton 组件基础

Radiobutton 控件通常与一个变量(通常是 IntVarStringVar)一起使用,该变量保存当前选中的值。当一个 Radiobutton 被选中时,它会更新这个变量的值。

Radiobutton 组件属性

  • variable: 与 Radiobutton 关联的变量,用于存储当前选中的值。
  • value: 当 Radiobutton 被选中时,variable 变量将被设置的值。
  • text: Radiobutton 旁边显示的文本。
  • command: 当 Radi按钮被选中时,会调用的回调函数。
  • indicatoron: 控制 Radiobutton 的指示器(圆圈)是否显示。
  • onvalueoffvalue: 分别设置变量的值当 Radiobutton 被选中和未被选中时。

两种形状的 Radiobutton

圆形 Radiobutton

圆形 Radiobutton 是 Tkinter 默认的样式。下面是一个创建圆形 Radiobutton 的示例代码:

在这里插入图片描述

import tkinter as tk  # 导入tkinter模块,并给它一个简短的别名tk# 创建主窗口
root = tk.Tk()  # 创建Tkinter的主窗口实例
root.title("圆形 Radiobutton 示例")  # 设置窗口标题为“圆形 Radiobutton 示例”# 创建一个 StringVar 对象,用于存储 Radiobutton 的值
radio_var = tk.StringVar()  # 创建一个StringVar对象,它用于存储Radiobutton的值,并且当值改变时可以通知界面更新# 创建圆形 Radiobutton 控件
radio1 = tk.Radiobutton(root, text="选项 1", variable=radio_var, value="1")  # 创建第一个Radiobutton,设置文本为“选项 1”,与radio_var变量关联,选中时变量值为"1"
radio1.pack()  # 使用pack布局管理器将第一个Radiobutton添加到窗口中radio2 = tk.Radiobutton(root, text="选项 2", variable=radio_var, value="2")  # 创建第二个Radiobutton,设置文本为“选项 2”,与radio_var变量关联,选中时变量值为"2"
radio2.pack()  # 使用pack布局管理器将第二个Radiobutton添加到窗口中radio3 = tk.Radiobutton(root, text="选项 3", variable=radio_var, value="3")  # 创建第三个Radiobutton,设置文本为“选项 3”,与radio_var变量关联,选中时变量值为"3"
radio3.pack()  # 使用pack布局管理器将第三个Radiobutton添加到窗口中# 启动事件循环
root.mainloop()  # 进入Tkinter的事件循环,使窗口保持打开状态并响应事件

矩形 Radiobutton

使用 tk.Radiobutton 控件创建看起来像矩形的 Radiobutton。关键在于使用 indicatoron=False 参数隐藏了默认的圆圈指示器,从而使得 Radiobutton 控件看起来更接近矩形形状。
在这里插入图片描述

import tkinter as tk   # 导入tkinter模块,并给它一个简短的别名tk# 创建主窗口
root = tk.Tk()   # 创建Tkinter的主窗口实例
root.title("矩形 Radiobutton 示例")   # 设置窗口标题为“矩形 Radiobutton 示例”# 创建一个 StringVar 对象,用于存储 Radiobutton 的值
radio_var = tk.StringVar()   # 创建一个StringVar对象,它用于存储Radiobutton的值,并且当值改变时可以通知界面更新# 创建 Radiobutton 控件
# 第一个参数是父容器,这里是 root
# text 参数是显示的文本
# variable 参数是与 Radiobutton 关联的变量
# value 参数是当这个 Radiobutton 被选中时,variable 变量的值
# indicatoron 参数设置为 False,隐藏默认的圆圈指示器
radio1 = tk.Radiobutton(root, text="选项 1", variable=radio_var, value="1", indicatoron=False)   # 创建第一个Radiobutton,设置文本为“选项 1”,与radio_var变量关联,选中时变量值为"1",隐藏圆圈指示器
radio1.pack()   # 使用pack布局管理器将第一个Radiobutton添加到窗口中radio2 = tk.Radiobutton(root, text="选项 2", variable=radio_var, value="2", indicatoron=False)   # 创建第二个Radiobutton,设置文本为“选项 2”,与radio_var变量关联,选中时变量值为"2",隐藏圆圈指示器
radio2.pack()   # 使用pack布局管理器将第二个Radiobutton添加到窗口中radio3 = tk.Radiobutton(root, text="选项 3", variable=radio_var, value="3", indicatoron=False)   # 创建第三个Radiobutton,设置文本为“选项 3”,与radio_var变量关联,选中时变量值为"3",隐藏圆圈指示器
radio3.pack()   # 使用pack布局管理器将第三个Radiobutton添加到窗口中# 启动事件循环
root.mainloop()   # 进入Tkinter的事件循环,使窗口保持打开状态并响应事件

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C# 通过代码开启自动设置时间和自动设置时区选项
  • 力扣 | 动态规划 | 状态机 | 买卖股票 | 买卖股票的最佳时机
  • MVI、MVVM、MVP的对比
  • 已解决:java.lang.UnsupportedClassVersionError 异常的正确解决方法,亲测有效!!!
  • 肿瘤细胞表皮生长因子EGFR靶向肽;GE11;YHWYGYTPQNVI
  • fastjson(autoType)反序列化漏洞
  • 经典结构Transformer解读
  • 本地访问不到公网redis的解决方法
  • 【Python】Python单元测试
  • Docker重启命令
  • stm32—中断机制
  • GSON转换将Long类型转换Double导致精度丢失的问题排查
  • Redis:查询是否包含某个字符/字符串之二
  • STM32-外部中断-AFIO-串口-串口通信-串口中断(空闲中断和接收中断)-printf移植-ADC数模转换-初始化和读取光敏电阻AO
  • Unity 使用 NewtonSoft Json插件报错
  • [ JavaScript ] 数据结构与算法 —— 链表
  • [deviceone开发]-do_Webview的基本示例
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • flask接收请求并推入栈
  • JavaScript的使用你知道几种?(上)
  • QQ浏览器x5内核的兼容性问题
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 大数据与云计算学习:数据分析(二)
  • 计算机在识别图像时“看到”了什么?
  • 将 Measurements 和 Units 应用到物理学
  • 老板让我十分钟上手nx-admin
  • 面试遇到的一些题
  • 什么是Javascript函数节流?
  • 微信小程序:实现悬浮返回和分享按钮
  • 移动端解决方案学习记录
  • 走向全栈之MongoDB的使用
  • ​虚拟化系列介绍(十)
  • # 数仓建模:如何构建主题宽表模型?
  • #Linux(权限管理)
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #在 README.md 中生成项目目录结构
  • (LeetCode 49)Anagrams
  • (不用互三)AI绘画工具应该如何选择
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (四)linux文件内容查看
  • (学习总结16)C++模版2
  • ..回顾17,展望18
  • .bat批处理(一):@echo off
  • .gitignore不生效的解决方案
  • .Net OpenCVSharp生成灰度图和二值图
  • .Net 执行Linux下多行shell命令方法
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET中使用Redis (二)
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • /var/log/cvslog 太大
  • []error LNK2001: unresolved external symbol _m
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [C#]扩展方法
  • [C++初阶]string类的详解
  • [CQOI 2010]扑克牌