这是我参与8月更文挑战的第26天,活动详情查看: 8月更文挑战
复习回顾
嘀嘀,我们在逛社区时,偶尔会接收到掘金助手的发来的问卷,我们来看一下调查问卷有哪些组件吧
- 每一栏描述语及图表都是Label标签组件
- 姓名输入框是Entry单行输入框
- 性别选择以及学历选择是Radiobutton单选框组件
- 出生年份是下拉框(未来会学习,本期不做讨论)
- 其他框是Text多文本输入框
- 最后完成填写内容后点击提交按键是Button组件
以上组件是Python Tkinter的标准组件,本期将学习Radiobutton单选框相关属性及方法的学习,Let's go~
1. Radiobutton单选框概述
Python Tkinter 提供Radiobutton来实现单选功能,一般适用需要唯一选项的场景例如性别、学历等单一信息选择上
Radiobutton单选框特点
- 单选框可以添加文本和图像
- 单选勾选,可以执行指定的方法
- 单选勾选提供get方法,可以获取勾选的值
- 每一组 Radiobutton 组件应该只与一个变量相关联,然后每一个按钮表示该变量的单一值
Radiobutton语法格式
Ra = Radiobutton(master,options)
2. Radiobutton单选框常见属性
属性名 | 含义 |
---|---|
text | 单选框文本显示 |
variable | 关联单选框执行的函数 |
value | 用于多个单选框值的区别 |
set(value) | 默认选中指定的单选框 |
relief | 单选框的边框样式显示,可选项包括FLAT/SUNKEN/RAISED/GROOVE/RIDGE |
height | 单选框的高度,需要结合单选框的边框样式才能展示出效果 |
width | 单选框的宽度,需要结合单选框的边框样式才能展示出效果 |
bd | 单选框边框样式的宽度,需要结合单选框的边框样式才能展示出效果 |
activebackground | 鼠标点击单选框时显示的前景色 |
activeforeground | 鼠标点击单选框时显示的背景色 |
bg | 单选框显示的前景色 |
fg | 单选框显示的背景色 |
font | 单选框的文字字体、字号、字形,字形可选项包括bold/italic/underline/overstrike |
image | 单选框显示图片,图片必须是gif格式,并且图片需要用PhotoImage赋值给变量,然后变量赋值给image |
justify | 单选框文字对齐方式,可选项包括LEFT, RIGHT, CENTER |
wraplength | 限制每行的文字,单选框文字达到限制的字符后,自动换行 |
underline | 下划线取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,第两个字符带下划线,以此类推 |
.config(state=) | 单选框的状态,状态可选项有DISABLED/NORMAL/ACTIVE |
3. Radiobutton单选框常见方法
方法 | 作用 |
---|---|
deselect() | 转动单选按钮 |
flash() | 在有效和正常颜色之间闪烁几次无线点按钮 |
invoke() | 调用Radiobutton状态更改时关联的任何过程 |
select() | 用于选择radibutton |
cget() | 获取已选项的信息 |
4. 小试牛刀
Radiobutton相关属性实现案例如下
-
首先创建调查文件/性别两个label标签组件
Label(self,text= "调查问卷").pack(side = "top") Label(self, text="性别:").pack(side="left")
-
创建两个Radiobutton单选框
self.r1 = Radiobutton(self,text = "男") self.r2 = Radiobutton(self,text = "女")
-
创建Radiobutton单选框,我们会发现它们都选好了,不在同一个组里
🔔 使用StringVar类型的容器,与Radiobutton的值进行双向绑定
- Radiobutton值选项发生变化,StringVar变量也会动态变化
- StringVar变量的值变化,Radiobutton的直接也发生变化
self.v = StringVar() self.v.set("Fmale") self.r1 = Radiobutton(self,text = "男",value = "Male",variable = self.v) self.r2 = Radiobutton(self,text = "女",value = "Fmale",variable = self.v)
-
可以使用stringVar提供的get方法来获取已选的值
def confirm(self): messagebox.showinfo("提示","选择的性别:"+self.v.get())
-
使用GUI面向对象编程写法,使用Application(Frame)来创建实例对象,创建组件的方法封装给createWidgetRadiobutton()方法,通过构造函数创建好组件
-
完整的代码如下:
from tkinter import * class Application(Frame): def __init__(self,master=None): # super()代表的是父类的定义,而不是父类对象 super().__init__(master) self.master = master self.pack() self.createWidgetRadiobuton() def createWidgetRadiobuton(self): Label(self,text= "调查问卷").pack(side = "top") Label(self, text="性别:").pack(side="left") self.v = StringVar() self.v.set("Fmale") self.r1 = Radiobutton(self,text = "男",value = "Male",variable = self.v) self.r2 = Radiobutton(self,text = "女",value = "Fmale",variable = self.v) self.r1.pack(side = "left");self.r2.pack(side = "left") Button(self, text="确认", command=self.confirm, anchor="w").pack(side="left") def confirm(self): messagebox.showinfo("提示","选择的性别:"+self.v.get()) root = Tk() root.geometry("400x130+200+300") root.title("MyfirstAPP") app = Application(master=root) root.mainloop()
总结
本期,我们学习Radiobutton单选框组件,当表单只需要单选内容时,可以使用此组件。
以上是本期内容,欢迎大佬们点赞评论指正,下次见~ღ( ´・ᴗ・` )比心🌹🌹🌹🌹🌹✈️