Виджет 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()
Выход: