Python tkinter(三) 单选框(Radiobutton)组件的属性说明及示例

Python tkinter 单选框组件用于tkinter GUI里添加单选按钮,单选框可以添加文本和图像。当单选框勾选时,可以执行指定的函数,或者获取勾选的值。

使用语法

widget = Radiobutton( master, parameter=value, ... )
  • master:单选框控件的父容器
  • parameter:单选框的参数
  • value:参数对应的值

各参数之间以逗号分隔。

参数说明

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

源码示例

# -*- coding:utf-8 -*-
from tkinter import *


class radiobutton:
    def __init__(self):
        root = Tk()
        root.title("单选框")  # 设置窗口标题
        root.geometry("650x600")  # 设置窗口大小 注意:是x 不是*
        '''单选框样式'''
        # 指定Radiobutton的事件处理函数
        iv_command = IntVar()
        self.rb_function_Label = Label(root, text='关联函数:')
        self.rb_function = Radiobutton(root, text='执行函数', command=self.function1, variable=iv_command)
        # 单选框默认选择
        iv_default = IntVar()
        self.rb_default_Label = Label(root, text='默认选择:')
        self.rb_default1 = Radiobutton(root, text='单选框1', value=1, variable=iv_default)
        self.rb_default2 = Radiobutton(root, text='单选框2', value=2, variable=iv_default)
        iv_default.set(1)
        # 单选框样式
        iv_style = IntVar()
        self.rb_style_Label = Label(root, text='显示边框样式:')
        self.rb_style1 = Radiobutton(root, text='边框平坦', value=1, variable=iv_style, relief=FLAT)
        self.rb_style2 = Radiobutton(root, text='边框凹陷', value=2, variable=iv_style, relief=SUNKEN)
        self.rb_style3 = Radiobutton(root, text='边框凸起', value=3, variable=iv_style, relief=RAISED)
        self.rb_style4 = Radiobutton(root, text='边框压线', value=4, variable=iv_style, relief=GROOVE)
        self.rb_style5 = Radiobutton(root, text='边框脊线', value=5, variable=iv_style, relief=RIDGE)
        # 单选框高度,height='高度',wideth='宽度',单选框的高度和宽度必须和边框样式一起使用才有效果
        iv_xy = IntVar()
        self.rb_xy_Label = Label(root, text='单选框边框xy:')
        self.rb_height = Radiobutton(root, text='边框高度', value=1, variable=iv_xy, relief=RAISED, height=2)
        self.rb_wideth = Radiobutton(root, text='边框高度', value=2, variable=iv_xy, relief=RAISED, width=16)
        # 单选框边框大小,bd='边框大小',单选框的边框效果必须和边框样式一起使用才有效果
        iv_border = IntVar()
        self.rb_border_Label = Label(root, text='单选框边框大小:')
        self.rb_border = Radiobutton(root, text='边框大小', variable=iv_border, relief=RAISED, bd=5)
        # 鼠标点击到单选框后改变颜色,activebackground='背景色',activeforeground='前景色'
        iv_click_colour = IntVar()
        self.rb_click_colour_Label = Label(root, text='鼠标点击颜色:')
        self.rb_click_colour1 = Radiobutton(root, text='前景色', value=1, variable=iv_click_colour,
                                            activebackground='blue')
        self.rb_click_colour2 = Radiobutton(root, text='背景色', value=2, variable=iv_click_colour,
                                            activeforeground='blue')

        # 单选框颜色,bg='背景色', fg='前景色'
        iv_colour = IntVar()
        self.rb_colour_Label = Label(root, text='单选框颜色:')
        self.rb_colour1 = Radiobutton(root, text='前景色', value=1, variable=iv_colour, bg='blue')
        self.rb_colour2 = Radiobutton(root, text='背景色', value=2, variable=iv_colour, fg='blue')
        # 单选框文字字体格式, font=('字体', 字号, 'bold/italic/underline/overstrike')
        iv_font = IntVar()
        self.rb_font_Label = Label(root, text='显示边框样式:')
        self.rb_font1 = Radiobutton(root, text='软体雅黑/12/重打印', value=1, variable=iv_font,
                                    font=('软体雅黑', 10, 'overstrike'))
        self.rb_font2 = Radiobutton(root, text='宋体/12/斜体', value=2, variable=iv_font, font=('宋体', 10, 'italic'))
        self.rb_font3 = Radiobutton(root, text='黑体/12/加粗', value=3, variable=iv_font, font=('黑体', 10, 'bold'))
        self.rb_font4 = Radiobutton(root, text='楷体/12/下划线', value=4, variable=iv_font,
                                    font=('楷体', 10, 'underline'))

        # 单选框图片设置,image=图片变量。图片必须以变量的形式赋值给image,图片必须是gif格式。
        iv_image = IntVar()
        self.rb_image_Label = Label(root, text='单选框图片:')
        gif = PhotoImage(file="1.gif")
        self.rb_image = Radiobutton(root, variable=iv_image, image=gif)
        # 单选框文字对齐方式,可选项包括LEFT, RIGHT, CENTER
        iv_aligning = IntVar()
        self.rb_aligning_Label = Label(root, text='文字对齐方式:')
        self.rb_aligning1 = Radiobutton(root, text='左对齐\n文字左侧对齐', value=1, variable=iv_aligning, justify=LEFT)
        self.rb_aligning2 = Radiobutton(root, text='居中对齐\n文字居中对齐', value=2, variable=iv_aligning, justify=CENTER)
        self.rb_aligning3 = Radiobutton(root, text='右对齐\n文字右侧对齐', value=3, variable=iv_aligning, justify=RIGHT)
        # 单选框达到限制字符后换行显示
        iv_linefeed = IntVar()
        self.rb_linefeed_Label = Label(root, text='文字换行显示:')
        self.rb_linefeed = Radiobutton(root, text='1234567890', variable=iv_linefeed, wraplength=30)
        # 下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,第两个字符带下划线,以此类推
        iv_underline = IntVar()
        self.rb_underline_Label = Label(root, text='文字标下划线:')
        self.rb_underline = Radiobutton(root, text='12345', variable=iv_underline, underline=2)
        # 单选框状态
        iv_status = IntVar()
        self.rb_status_Label = Label(root, text='按钮状态:')
        self.rb_disabled = Radiobutton(root, text='禁用状态', value=1, variable=iv_status)
        self.rb_disabled.config(state=DISABLED)
        self.rb_usual = Radiobutton(root, text='普通状态', value=2, variable=iv_status)
        self.rb_usual.config(state=NORMAL)
        self.rb_active = Radiobutton(root, text='活跃状态', value=3, variable=iv_status)
        self.rb_active.config(state=ACTIVE)

        '''grid布局'''
        self.rb_function_Label.grid(row=1, column=0, sticky='E')
        self.rb_function.grid(row=1, column=1, sticky='W')
        self.rb_default_Label.grid(row=2, column=0, sticky='E')
        self.rb_default1.grid(row=2, column=1, sticky='W')
        self.rb_default2.grid(row=2, column=2, sticky='W')
        self.rb_style1.grid(row=2, column=3, sticky='W')
        self.rb_style_Label.grid(row=3, column=0, sticky='E')
        self.rb_style1.grid(row=3, column=1, sticky='W')
        self.rb_style2.grid(row=3, column=2, sticky='W')
        self.rb_style3.grid(row=3, column=3, sticky='W')
        self.rb_style4.grid(row=3, column=4, sticky='W')
        self.rb_style5.grid(row=3, column=5, sticky='W')
        self.rb_xy_Label.grid(row=4, column=0, sticky='E')
        self.rb_height.grid(row=4, column=1, sticky='W')
        self.rb_wideth.grid(row=4, column=2, columnspan=2, sticky='W')
        self.rb_border_Label.grid(row=5, column=0, sticky='E')
        self.rb_border.grid(row=5, column=1, sticky='W')
        self.rb_click_colour_Label.grid(row=6, column=0, sticky='E')
        self.rb_click_colour1.grid(row=6, column=1, sticky='W')
        self.rb_click_colour2.grid(row=6, column=2, sticky='W')
        self.rb_colour_Label.grid(row=7, column=0, sticky='E')
        self.rb_colour1.grid(row=7, column=1, sticky='W')
        self.rb_colour2.grid(row=7, column=2, sticky='W')
        self.rb_font_Label.grid(row=8, column=0, rowspan=2, sticky='E')
        self.rb_font1.grid(row=8, column=1, columnspan=2, sticky='W')
        self.rb_font2.grid(row=8, column=3, columnspan=2, sticky='W')
        self.rb_font3.grid(row=9, column=1, columnspan=2, sticky='W')
        self.rb_font4.grid(row=9, column=3, columnspan=2, sticky='W')
        self.rb_image_Label.grid(row=10, column=0, sticky='E')
        self.rb_image.grid(row=10, column=1, columnspan=3, sticky='W')
        self.rb_aligning_Label.grid(row=11, column=0, sticky='E')
        self.rb_aligning1.grid(row=11, column=1, sticky='W')
        self.rb_aligning2.grid(row=11, column=2, sticky='W')
        self.rb_aligning3.grid(row=11, column=3, sticky='W')
        self.rb_linefeed_Label.grid(row=12, column=0, sticky='E')
        self.rb_linefeed.grid(row=12, column=1, sticky='W')
        self.rb_underline_Label.grid(row=13, column=0, sticky='E')
        self.rb_underline.grid(row=13, column=1, sticky='W')
        self.rb_status_Label.grid(row=14, column=0, sticky='E')
        self.rb_disabled.grid(row=14, column=1, sticky='W')
        self.rb_usual.grid(row=14, column=2, sticky='W')
        self.rb_active.grid(row=14, column=3, sticky='W')
        root.mainloop()

    def function1(self):
        print('选中function1')


if __name__ == '__main__':
    radiobutton()

效果展示

相关文档推荐:

Python tkinter(一) 按钮组件的属性说明及示例

python tkinter(二) 下拉框(combobox)组件的属性说明及示例

Python tkinter(四) 文本框(Text)组件的属性说明及示例

Python tkinter(五) 文本框(Entry)组件的属性说明及示例

Python tkinter(六) 标签(Label)组件的属性说明及示例

  • 30
    点赞
  • 153
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Python tkinter 中的单选框是一种用户界面控件,用于让用户从多个选项中选择一个。它通常由一个圆圈和一个标签组成,用户可以单击圆圈来选择选项。在 tkinter 中,单选框可以使用 Radiobutton 控件来创建。要创建一个单选框,需要指定选项的文本和值,并将它们与一个共同的变量绑定。当用户选择一个选项时,该变量的值将被设置为该选项的值。 ### 回答2: Python tkinter 单选框tkinter库中的一个组件,用于在GUI界面中提供单选选项供用户选择。单选框的外观通常是一个圆圈,用户可以通过点击来选中其中的一个选项。 在使用Python tkinter创建单选框时,首先需要导入tkinter库的相关模块,然后创建一个Tkinter应用程序的实例。接下来,使用Tkinter库的RadioButton方法创建一个单选框组件,并为每个单选框设置相应的选项文本和变量。选项文本即为单选框的标签,用于显示给用户可供选择的选项。而变量则用于存储用户选择的选项。 在创建单选框后,需要使用pack或grid等方法将单选框组件放置在Tkinter窗口中的适当位置。在用户选择单选框时,可以通过绑定选项的变量来获取用户选择的值。例如,可以使用get方法获取选项变量的值,以确定用户选择的是哪个选项。 这是一个简单的单选框示例: ```python import tkinter as tk root = tk.Tk() # 创建选项变量 choice_var = tk.StringVar() # 创建单选框 radio_button_1 = tk.Radiobutton(root, text="选项1", variable=choice_var, value="选项1") radio_button_2 = tk.Radiobutton(root, text="选项2", variable=choice_var, value="选项2") radio_button_3 = tk.Radiobutton(root, text="选项3", variable=choice_var, value="选项3") # 设置单选框布局 radio_button_1.pack() radio_button_2.pack() radio_button_3.pack() # 获取用户选择的选项 def get_selection(): choice = choice_var.get() print(f"用户选择了:{choice}") # 创建按钮来获取用户选择 selection_button = tk.Button(root, text="确定", command=get_selection) selection_button.pack() root.mainloop() ``` 在上面的示例中,创建了单选框选项"选项1"、"选项2"和"选项3",并创建一个按钮来获取用户选择的选项。当用户点击确定按钮时,会输出用户选择的选项。 通过使用Python tkinter单选框组件,我们可以方便地为用户提供单选选项,并获取用户的选择结果。单选框在许多GUI界面中都有广泛的应用,如设置界面、调查问卷等。 ### 回答3: Python tkinter 单选框是一种用户界面组件,用于选择一个选项。单选框一般包括一个标签和一组选项按钮,在用户点击其中一个选项按钮时,只有该选项按钮被选中,其他选项按钮则不会被选中。 在使用Python tkinter创建单选框时,可以通过使用Tkinter中的`Radiobutton`类来实现。首先需要创建一个主窗口,然后在主窗口上添加单选框的标签和选项按钮。 下面是一个简单的例子,创建一个包含两个选项按钮的单选框: ```python from tkinter import * root = Tk() root.title("单选框示例") # 创建一个标签 label = Label(root, text="请选择一个选项:") label.pack() # 定义选项按钮的变量 selected_option = IntVar() # 创建两个选项按钮 rb_option1 = Radiobutton(root, text="选项1", variable=selected_option, value=1) rb_option1.pack() rb_option2 = Radiobutton(root, text="选项2", variable=selected_option, value=2) rb_option2.pack() # 显示主窗口 root.mainloop() ``` 在这个例子中,通过`Radiobutton`类创建了两个选项按钮,分别是"选项1"和"选项2"。`variable`参数指定了选项按钮所关联的变量,这里使用了`IntVar()`来创建一个整数型变量`selected_option`。`value`参数指定了当选中该选项按钮时,变量`selected_option`的值为多少。 通过设置选项按钮的`variable`参数和`value`参数,可以实现选择其中一个选项按钮时,其他选项按钮自动不被选中的功能。 以上就是关于Python tkinter单选框的简单介绍,希望对你有所帮助!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值