Tkinter组件实现Radiobutton的示例

目录
  • 何时使用 Radiobutton 组件?
  • 用法
  • 参数
  • 方法

Radiobutton(单选按钮)组件用于实现多选一的问题。Radiobutton 组件可以包含文本或图像,每一个按钮都可以与一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被自动执行。

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

每一组 Radiobutton 组件应该只与一个变量相关联,然后每一个按钮表示该变量的单一值。

何时使用 Radiobutton 组件?

Radiobutton 组件是用于实现多选一的问题,它几乎总是成组地被使用,其中所有成员共用相同的变量。

用法

Radiobutton 组件跟 Checkbutton 组件非常相似,为了实现其“单选”行为,确保一组中的所有按钮的 variable 选项都使用同一个变量,并使用 value 选项来指定每个按钮代表什么值:

import tkinter as tk

master = tk.Tk()

v = tk.IntVar()
v.set(2)

tk.Radiobutton(master, text="One", variable=v, value=1).pack(anchor="w")
tk.Radiobutton(master, text="Two", variable=v, value=2).pack(anchor="w")
tk.Radiobutton(master, text="Three", variable=v, value=3).pack(anchor="w")

master.mainloop()

如果按钮(选项)比较多,强烈建议您使用以下方式来初始化 Radiobutton 组件:

import tkinter as tk

master = tk.Tk()

GIRLS = [
    ("西施", 1),
    ("王昭君", 2),
    ("貂蝉", 3),
    ("杨玉环", 4)]

v = tk.IntVar()

for girl, num in GIRLS:
    b = tk.Radiobutton(master, text=girl, variable=v, value=num)
    b.pack(anchor="w")

master.mainloop()

上图是一个普通的单选按钮样式,如果将它的  indicatoron 选项设置为 False,Radiobutton 的样式就会变成普通按钮的样式了:

b = tk.Radiobutton(master, text=girl, variable=v, value=num, indicatoron=False)
b.pack(fill="x")

参数

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

master -- 父组件

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

选项 含义
activebackground 1. 设置当 Radiobutton 处于活动状态(通过 state 选项设置状态)的背景色
2. 默认值由系统指定
activeforeground 1. 设置当 Radiobutton 处于活动状态(通过 state 选项设置状态)的前景色
2. 默认值由系统指定
anchor 1. 控制文本(或图像)在 Radiobutton 中显示的位置
2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或者 "center" 来定位(ewsn 代表东西南北,上北下南左西右东)
3. 默认值是 "center"
background 1. 设置背景颜色
2. 默认值由系统指定
bg 跟 background 一样
bitmap 1. 指定显示到 Radiobutton 上的位图
2. 如果指定了 image 选项,则该选项被忽略
borderwidth 1. 指定 Radiobutton 的边框宽度
2. 默认值由系统指定,通常是 1 或 2 像素
bd 跟 borderwidth 一样
command 1. 指定于该按钮相关联的函数或方法
2. 当按钮被按下时由 Tkinter 自动调用对应的函数或方法
3. 如果不设置此选项,那么该按钮被按下后啥事儿也不会发生
compound 1. 控制 Radiobutton 中文本和图像的混合模式
2. 默认情况下,如果有指定位图或图片,则不显示文本
3. 如果该选项设置为 "center",文本显示在图像上(文本重叠图像)
4. 如果该选项设置为 "bottom","left","right" 或 "top",那么图像显示在文本的旁边(如 "bottom",则图像在文本的下方)
5. 默认值是 NONE
cursor 1. 指定当鼠标在 Radiobutton 上飘过的时候的鼠标样式
2. 默认值由系统指定
disabledforeground 1. 指定当 Radiobutton 不可用的时候前景色的颜色
2. 默认值由系统指定
font 1. 指定 Radiobutton 中文本的字体
2. 一个 Radiobutton 只能设置一种字体
3. 默认值由系统指定
foreground 1. 设置 Radiobutton 的文本和位图的颜色
2. 默认值由系统指定
fg 跟 foreground 一样
height 1. 设置 Radiobutton 的高度
2. 如果 Radiobutton 显示的是文本,那么单位是文本单元
3. 如果 Radiobutton 显示的是图像,那么单位是像素(或屏幕单元)
4. 如果设置为 0 或者干脆不设置,那么会自动根据 Radiobutton 的内容计算出高度
highlightbackground 1. 指定当 Radiobutton 没有获得焦点的时候高亮边框的颜色
2. 默认值由系统指定,通常是标准背景颜色
highlightcolor 1. 指定当 Radiobutton 获得焦点的时候高亮边框的颜色
2. 默认值由系统指定
highlightthickness 1. 指定高亮边框的宽度
2. 默认值由系统指定,通常是 1 或 2 像素
image 1. 指定 Radiobutton 显示的图片
2. 该值应该是 PhotoImage,BitmapImage,或者能兼容的对象
3. 该选项优先于 text 和 bitmap 选项
indicatoron 1. 指定前边作为选择的小圆圈是否绘制
2. 默认是绘制的
3. 该选项会影响到按钮的样式,如果设置为 False,则点击后该按钮变成 "sunken"(凹陷),再次点击变为 "raised"(凸起)
justify 1. 定义如何对齐多行文本
2. 使用 "left","right" 或 "center"
3. 注意,文本的位置取决于 anchor 选项
4. 默认值是 "center"
padx 1. 指定 Radiobutton 水平方向上的额外间距(内容和边框间)
2. 默认值是 1
pady 1. 指定 Radiobutton 垂直方向上的额外间距(内容和边框间)
2. 默认值是 1
relief 1. 指定边框样式
2. 可以设置 "sunken","raised","groove","ridge" 或 "flat"
3. 如果 indicatoron 选项设置为 True,则默认值是 "flat",否则为 "raised"
selectcolor 1. 选择框的颜色
2. 默认值由系统指定
selectimage 1. 设置当 Radiobutton 为选中状态的时候显示的图片
2. 如果没有指定 image 选项,该选项被忽略
state 1. 指定 Radiobutton 的状态
2. 默认值是 "normal"
3. 另外你还可以设置 "active" 或 "disabled"
takefocus 1. 如果是 True,该组件接受输入焦点(用户可以通过 tab 键将焦点转移上来)
2. 默认值是 False
text 1. 指定 Radiobutton 显示的文本
2. 文本可以包含换行符
3. 如果设置了 bitmap 或 image 选项,该选项则被忽略
textvariable 1. Radiobutton 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容
2. 如果变量被修改,Radiobutton 的文本会自动更新
underline 1. 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键)
2. 默认值是 -1
3. 例如设置为 1,则说明在 Radiobutton 的第 2 个字符处画下划线
value 1. 标志该单选按钮的值
2. 在同一组中的所有按钮应该拥有各不相同的值
3. 通过将该值与 variable 选项的值对比,即可判断用户选中了哪个按钮
variable 1. 与 Radiobutton 组件关联的变量
2. 同一组中的所有按钮的 variable 选项应该都指向同一个变量
3. 通过将该变量与 value 选项的值对比,即可判断用户选中了哪个按钮
width 1. 设置 Radiobutton 的宽度
2. 如果 Radiobutton 显示的是文本,那么单位是文本单元
3. 如果 Radiobutton 显示的是图像,那么单位是像素(或屏幕单元)
4. 如果设置为 0 或者干脆不设置,那么会自动根据 Radiobutton 的内容计算出宽度
wraplength 1. 决定 Radiobutton 的文本应该被分成多少行
2. 该选项指定每行的长度,单位是屏幕单元
3. 默认值是 0

方法

deselect()
-- 取消该按钮的选中状态。

flash()
-- 刷新 Radiobutton 组件,该方法将重绘 Radiobutton 组件若干次(在"active" 和 "normal" 状态间切换)。
-- 该方法在调试的时候很有用,也可以使用此方法提醒用户激活了该按钮。

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

select()
-- 将 Radiobutton 组件设置为选中状态。

到此这篇关于Tkinter组件实现Radiobutton的示例的文章就介绍到这了,更多相关Tkinter Radiobutton内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python tkinter组件摆放方式详解

    1.最小界面组成 # 导入tkinter模块 import tkinter # 创建主窗口对象 root = tkinter.Tk() # 设置窗口大小(最小值:像素) root.minsize(300,300) # 创建一个按钮组件 btn = tkinter.Button(root,text = '屠龙宝刀,点击送') btn.pack() # 加入消息循环 root.mainloop() 设置初始化界面大小 # 设置初始化界面大小 root.geometry('300x400') 2.组件

  • python tkinter组件使用详解

    这篇文章主要介绍了python tkinter组件使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.按钮 # 按钮 # bg设置背景色 btn = tkinter.Button(root,text = '按钮',bg = 'red') btn.pack() # fg设置前景色(文字颜色) btn1 = tkinter.Button(root,text = '按钮',fg = 'blue') btn1.pack() # font设置字体

  • 对Python中TKinter模块中的Label组件实例详解

    Python2.7.4 OS-W7x86 1. 简介 Label用于在指定的窗口中显示文本和图像.最终呈现出的Label是由背景和前景叠加构成的内容. Label组件定义函数:Label(master=None, cnf={}, **kw) 其中,kw参数是用来自定义lable组件的键值对. 2. 背景自定义 背景的话,有三部分构成:内容区+填充区+边框 <1>内容区参数有:width,length用于指定区域大小,如果显示前景内容是文本,则以单个字符大小为单位:如果显示的是图像,则以像素为单

  • Python Tkinter Menu组件详解

    目录 何时使用 Menu 组件? 用法 参数 方法 add_cascade(**options) add_checkbutton(**options) add_command(**options) add_radiobutton(**options) add_separator(**options) delete(index1, index2=None) entrycget(index, option) entryconfig(index, **options) entryconfigure(i

  • Tkinter canvas的画布参数,删除组件,添加垂直滚动条详解

    目录 1.画布 Canvas的参数 2.删除鼠标下的组件 3.带垂直滚动条的画布 总结 1.画布 Canvas的参数 from tkinter import * win = Tk() win.geometry('500x500+500+100') canvas = Canvas( master=win, # 父控件 bg='orange', # 背景颜色 bd=2, # 边框宽度 closeenough=1, # 当鼠标与画布上组件的距离小于该值时,认为鼠标在该组件上,是一个浮点型的值 curs

  • Tkinter组件实现Radiobutton的示例

    目录 何时使用 Radiobutton 组件? 用法 参数 方法 Radiobutton(单选按钮)组件用于实现多选一的问题.Radiobutton 组件可以包含文本或图像,每一个按钮都可以与一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被自动执行. Radiobutton 组件仅能显示单一字体的文本,但文本可以跨越多行.另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键).默认情况下,tab 按键被用于在按钮间切换. 每一组 Radiobutton

  • Java Swing组件定制RadioButton示例

    本文实例讲述了Java Swing组件定制RadioButton.分享给大家供大家参考,具体如下: 先来看看效果图: 具体代码如下: package themedemo; import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.RenderingH

  • python中Tkinter实现分页标签的示例代码

    Tkinter实现UI分页标签显示: Input页,红色部分为当前Frame的位置,下半部分为第一页的子标签:三页标签的显示内容各不相同.实现分页显示的核心组件为Radiobutton,Radiobutton只有一个选项能够生效,使用参数indicatoron=0能够将Radiobutton显示为Button的形状,通过选定的Radiobutton将原有的Frame forget掉,同时,将预定的Frame pack,实现分页的效果.使用时要将更换的组件放入一个Frame中,定义一个函数进行选定

  • Tkinter组件Checkbutton的具体使用

    目录 何时使用 Checkbutton 组件? 用法 参数 方法 Checkbutton(多选按钮)组件用于实现确定是否选择的按钮.Checkbutton 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被自动执行. Checkbutton 组件仅能显示单一字体的文本,但文本可以跨越多行.另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键).默认情况下,tab 按键被用于在按钮间切换. 何时使用 Checkbutton 组

  • Python中Tkinter组件Menu的具体使用

    目录 何时使用 Menu 组件? 用法 参数 方法 Menu(菜单)组件用于实现顶级菜单.下拉菜单和弹出菜单. 何时使用 Menu 组件? Menu 组件通常被用于实现应用程序上的各种菜单,由于该组件是底层代码实现,所以不建议你自行通过按钮和其他组件来实现菜单功能. 用法 创建一个顶级菜单,你需要先创建一个菜单实例,然后使用 add() 方法将命令和其它子菜单添加进去: import tkinter as tk root = tk.Tk() def callback(): print("~被调用

  • Python中Tkinter组件Listbox的具体使用

    目录 何时使用 Listbox 组件? 用法 参数 方法 Listbox(列表框)组件用于显示一个选择列表.Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色.根据组件的配置,用户可以从列表中选择一个或多个选项. 何时使用 Listbox 组件? Listbox 组件通常被用于显示一组文本选项,Listbox 组件跟 Checkbutton和 Radiobutton组件类似,不过 Listbox 是以列表的形式来提供选项的(后两个是通过按钮的形式). 用法 当你创建一个

  • Python中Tkinter组件Button的具体使用

    目录 简介 何时使用 Button 组件? 用法 参数 方法 简介 Button(按钮)组件用于实现各种各样的按钮.Button 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被自动执行. Button 组件仅能显示单一字体的文本,但文本可以跨越多行.另外,还可以为其中的个别字符加上下划线(例如用于表示键盘快捷键).默认情况下,tab 按键被用于在按钮间切换. 何时使用 Button 组件? 简而言之,Button 组件是用于让用户

  • vue父子组件的嵌套的示例代码

    本文介绍了vue父子组件的嵌套的示例代码,分享给大家,具体如下: 组件的注册: 先创建一个构造器 var myComponent = Vue.extend({ template: '...' }) 用Vue.component注册,将构造器用作组件(例为全局组件) Vue.component('my-component' , myComponent) 注册局部组件: var Child = Vue.extend({ /* ... */ }) var Parent = Vue.extend({ t

  • Vue-router 类似Vuex实现组件化开发的示例

    本文介绍了Vue-router 类似Vuex实现组件化开发的示例,分享给大家,具体如下: 随着项目越来越大,把所有route写在一个文件里就显得杂乱. #单个组件路由 import a from '../components/a' export default { path: '/a', name: 'a', component: a } import arouter from 'xxx' export default new Router({ routes: [ arouter ] }) #多

随机推荐