Виджет Tkinter Radiobutton в Python и примеры

Виджет Tkinter Radiobutton в Python позволяет пользователям выбирать один из нескольких взаимоисключающих вариантов.

Знакомство с Tkinter Radiobutton

Radiobutton — это переключатель выбора одного из нескольких взаимоисключающих вариантов.

Обычно переключатели используются вместе в наборе. Они являются хорошим вариантом, если у вас есть несколько вариантов, которые вы хотите, чтобы пользователи выбирали.

Использование переключателя

Для создания переключателя используется виджет Radiobutton. Ниже показано, как создавать переключатели с помощью конструктора tk.Radiobutton:

selected = tk.StringVar()
r1 = ttk.Radiobutton(container, text='Option 1', value='Value 1', variable=selected)
r2 = ttk.Radiobutton(container, text='Option 2', value='Value 2', variable=selected)
r3 = ttk.Radiobutton(container, text='Option 3', value='value 3', variable=selected)

Каждая радиокнопка имеет разное значение. Однако в одной группе используют одну и ту же переменную.

  • container — это родительский виджет, на котором размещаются переключатели.
  • Аргумент text определяет текст, который отображается на переключателе.
  • Аргумент value указывает значение, которое будет хранить переключатель.

Переменная должна быть tk.StringVar().

Пример Radiobutton

Следующая программа иллюстрирует, как использовать пернключатель. Она выбирает выбранный размер после нажатия кнопки «Получить выбранный размер».

import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showinfo

# root window
root = tk.Tk()
root.geometry('300x220')
root.resizable(False, False)
root.title('Radio Button Demo')


def show_selected_size():
    showinfo(
        title='Result',
        message=selected_size.get()
    )


selected_size = tk.StringVar()
sizes =(('Small', 'S'),
        ('Medium', 'M'),
        ('Large', 'L'),
        ('Extra Large', 'XL'),
        ('Extra Extra Large', 'XXL'))

# label
label = ttk.Label(text="What's your t-shirt size?")
label.pack(fill='x', padx=5, pady=5)

# radio buttons
for size in sizes:
    r = ttk.Radiobutton(
        root,
        text=size[0],
        value=size[1],
        variable=selected_size
    )
    r.pack(fill='x', padx=5, pady=5)

# button
button = ttk.Button(
    root,
    text="Get Selected Size",
    command=show_selected_size)

button.pack(fill='x', padx=5, pady=5)


root.mainloop()

Выход:

Пример выбора переключателя с Radiobutton

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *