Python Tkinter组件之Radiobutton

958 阅读4分钟

玩转Python

这是我参与8月更文挑战的第26天,活动详情查看: 8月更文挑战

复习回顾

嘀嘀,我们在逛社区时,偶尔会接收到掘金助手的发来的问卷,我们来看一下调查问卷有哪些组件吧

以上组件是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相关属性实现案例如下

  1. 首先创建调查文件/性别两个label标签组件

     Label(self,text= "调查问卷").pack(side = "top")
    
     Label(self, text="性别:").pack(side="left")
    
  2. 创建两个Radiobutton单选框

    self.r1 = Radiobutton(self,text = "男")
    self.r2 = Radiobutton(self,text = "女")
    
  3. 创建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)
    
  4. 可以使用stringVar提供的get方法来获取已选的值

    def confirm(self):
    
        messagebox.showinfo("提示","选择的性别:"+self.v.get())
    
  5. 使用GUI面向对象编程写法,使用Application(Frame)来创建实例对象,创建组件的方法封装给createWidgetRadiobutton()方法,通过构造函数创建好组件

  6. 完整的代码如下:

    
    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单选框组件,当表单只需要单选内容时,可以使用此组件。

以上是本期内容,欢迎大佬们点赞评论指正,下次见~ღ( ´・ᴗ・` )比心🌹🌹🌹🌹🌹✈️