龙空技术网

软件测试|超好用超简单的Python GUI库——tkinter(十一)

测试者穆勒 48

前言:

此刻各位老铁们对“radiobutton选中的文本怎么获取”大致比较关心,大家都想要知道一些“radiobutton选中的文本怎么获取”的相关知识。那么小编也在网摘上搜集了一些关于“radiobutton选中的文本怎么获取””的相关资讯,希望看官们能喜欢,姐妹们快快来了解一下吧!

前言

我们在使用音乐播放软件时,我们想选择播放模式时,我们只能在随机播放,单曲循环,列表循环三种方式中选择一个,这就是我们常见的单选的情况,我们在设计我们的GUI时,也有可能遇到单选的情况,tkinter也同样给了我们实现单选的控件——Radiobutton,本文就给大家介绍一下单选框控件Radiobutton的使用。

Radiobutton单选框控件

单选框按钮控件(Radiobutton)允许用户选择具体的选项值,不过与 Listbox 相比,单选按钮控件仅允许用户选择单一的选项值,各个选项值之间是互斥的关系,因此只有一个选项可以被用户选择。

Radiobutton 控件通常都是成组出现的,所有控件都使用相同的变量。Radiobutton 可以包含文本或图像,每一个按钮都可以与一个 Python 函数相关联。当按钮被按下时,对应的函数会被执行。这里需要注意的是,单选按钮控件仅能显示单一字体的文本,但文本可以跨越多行,除此之外,您还可以为个别的字符添加下划线。

Radiobutton特有属性

属性

说明

activebackground

设置当 Radiobutton 处于活动状态(通过 state 选项设置状态)的背景色,默认值由系统指定

activeforeground

设置当 Radiobutton 处于活动状态(通过 state 选项设置状态)的前景色,默认值由系统指定

compound

1. 默认值为 None,控制 Radiobutton 中文本和图像的混合模式,默认情况下,如果有指定位图或图片,则不显示文本

2. 如果该选项设置为 “center”,文本显示在图像上(文本重叠图像)

3. 设置为 “bottom”,“left”,“right” 或 “top”,那么图像显示在文本的旁边,比如如"bottom",则显示图像在文本的下方。

disabledforeground

指定当 Radiobutton 不可用的时的前景色颜色,默认由系统指定

indicatoron

1. 该参数表示选项前面的小圆圈是否被绘制,默认为 True,即绘制;

2. 如果设置为 False,则会改变单选按钮的样式,当点击时按钮会变成 “sunken”(凹陷),再次点击变为 “raised”(凸起)

selectcolor

设置当 Radiobutton 为选中状态的时候显示的图片;如果没有指定 image 选项,该选项被忽略

takefocus

如果是 True,该组件接受输入焦点,默认为 False

variable

表示与 Radiobutton 控件关联的变量,注意同一组中的所有按钮的 variable 选项应该都指向同一个变量,通过将该变量与 value 选项值对比,可以判断用户选中了哪个按钮。

Radiobutton常用方法

方法

说明

deselect()

取消该按钮的选中状态

flash()

刷新 Radiobutton 控件,该方法将重绘 Radiobutton控件若干次(即在"active" 和 “normal” 状态间切换)

invoke()

1. 调用 Radiobutton 中 command 参数指定的函数,并返回函数的返回值

2. 如果 Radiobutton 控件的 state(状态) 是 “disabled” (不可用)或没有指定 command 选项,则该方法无效

select()

将 Radiobutton 控件设置为选中状态

示例

Radiobutton 控件用来解决多选一的问题,它通常是成组出现的,示例如下:

import tkinter as tkwindow = tk.Tk()window.title("德甲联赛")window.geometry('400x180')# IntVar() 用于处理整数类型的变量v = tk.IntVar()# 根据单选按钮的 value 值来选择相应的选项v.set(0)# 使用 variable 参数来关联 IntVar() 的变量 v# tk.Radiobutton(window, text="拜仁慕尼黑", fg='red',font=('微软雅黑','12','bold'),variable=v, value=0).pack(anchor = 'w')tk.Radiobutton(window, text ="拜仁慕尼黑", variable=v, value=1).pack(anchor="w")tk.Radiobutton(window, text="多特蒙德", variable=v, value=2).pack(anchor = 'w')tk.Radiobutton(window, text="柏林联", variable=v, value=3).pack(anchor = 'w')tk.Radiobutton(window, text="莱比锡红牛", variable=v, value=4).pack(anchor = 'w')# 显示窗口window.mainloop()

运行脚本之后,结果如下:

代码优化

上面的代码直接实现了单选功能,但是我们可以看到还是存在冗余的情况,我们在选项中存在多行的冗余代码:

import tkinter as tkwindow = tk.Tk()window.title("德甲联赛")window.geometry('400x180')site = [('拜仁慕尼黑',1),        ('多特蒙德',2),        ('柏林联',3),        ('莱比锡红牛',4)]# IntVar() 用于处理整数类型的变量v = tk.IntVar()# 重构后的写法,也非常简单易懂for name, num in site:    radio_button = tk.Radiobutton(window,text = name, variable = v,value =num)    radio_button.pack(anchor ='w')# 显示窗口window.mainloop()

进一步优化,使得界面能显示我们的选择

import tkinter as tkdef select():    dict = {1:'凯美瑞',2:'帕萨特',3:'迈腾',4:'亚洲龙'}    strings = '尊敬的车主,您选择了' + dict.get(v.get()) + ',祝您驾驶愉快'    lable.config(text = strings)window = tk.Tk()window.title("车专家")window.geometry('400x180')lable = tk.Label(window,font=('微软雅黑', '15','bold'),fg='#43CD80')lable.pack(side ='bottom')site = [('凯美瑞',1),        ('帕萨特',2),        ('迈腾',3),        ('亚洲龙',4)]# IntVar() 用于处理整数类型的变量v = tk.IntVar()for name, num in site:    radio_button = tk.Radiobutton(window,text = name, variable = v,value =num,command = select,indicatoron = False)    radio_button.pack(anchor ='w')# 显示窗口window.mainloop()

运行程序,结果如下图:

总结

本文主要介绍了tkinter单选控件——Radiobutton控件的使用,后面我们将介绍多选框控件——Checkbutton的使用。

标签: #radiobutton选中的文本怎么获取