Учебное пособие Tkinter - Радиобаттон
- Основной пример радиобутона Tkinter
- Tkinter Радиобаттон - Получить значение
- Изменить тип индикатора Tkinter Радио Кнопка
- Функция обратного вызова радиобутона Tkinter

Вы узнали label, button и Checkbutton в последних разделах. Tkinterные виджеты имеют достаточно похожие опции, свойства или методы, поэтому из этого раздела мы могли бы учиться в быстром темпе.
Radiobuton - это кнопка единственного в своем роде. В ее выборе есть несколько вариантов, но пользователь мог выбрать только один из них. Так же, как и введенные ранее виджеты, Radibutton может содержать текст или изображение и может привязывать к нему функцию обратного вызова или метод. Эта функция обратного вызова срабатывает автоматически при нажатии этой кнопки.
Основной пример радиобутона Tkinter
import tkinter as tk
app = tk.Tk()
app.geometry('150x100')
radioValue = tk.IntVar()
rdioOne = tk.Radiobutton(app, text='January',
variable=radioValue, value=1)
rdioTwo = tk.Radiobutton(app, text='Febuary',
variable=radioValue, value=2)
rdioThree = tk.Radiobutton(app, text='March',
variable=radioValue, value=3)
rdioOne.grid(column=0, row=0)
rdioTwo.grid(column=0, row=1)
rdioThree.grid(column=0, row=2)
app.mainloop()
Результат вышеприведенной базовой демонстрации Radiobutton ниже
radioValue = tk.IntVar()
Так же, как и кнопка проверки, радио кнопки должны ассоциировать с ними значения определенного типа данных.
rdioOne = tk.Radiobutton(app, text='January',
variable=radioValue, value=1)
rdioTwo = tk.Radiobutton(app, text='Febuary',
variable=radioValue, value=2)
rdioThree = tk.Radiobutton(app, text='March',
variable=radioValue, value=3)
Здесь же создаются кнопки с текстом January
, Febuary
и March
. Радио кнопки в одной группе должны и должны иметь уникальные значения.
Tkinter Радиобаттон - Получить значение
Радио кнопки в одной группе имеют одну и ту же переменную radioValue
, как показано в примере выше, и присваиваются различные значения с помощью опции value
.
Значение выбранной радиокнопки автоматически обновляет переменную radioValue
, которая является tk.IntVar
.
Текст этикетки автоматически отражает значение выбранной кнопки в приведенном ниже примере кодов.
import tkinter as tk
app = tk.Tk()
app.geometry('200x100')
radioValue = tk.IntVar()
rdioOne = tk.Radiobutton(app, text='January',
variable=radioValue, value=0)
rdioTwo = tk.Radiobutton(app, text='Febuary',
variable=radioValue, value=1)
rdioThree = tk.Radiobutton(app, text='March',
variable=radioValue, value=2)
rdioOne.grid(column=0, row=0, sticky="W")
rdioTwo.grid(column=0, row=1, sticky="W")
rdioThree.grid(column=0, row=2, sticky="W")
labelValue = tk.Label(app, textvariable=radioValue)
labelValue.grid(column=2, row=0, sticky="E", padx=40)
app.mainloop()
Текстовая переменная
лейбла лейблаValue
совпадает с опцией variable
радиокнопок, так что текст лейбла может автоматически обновляться сам по себе.
Изменить тип индикатора Tkinter Радио Кнопка
По умолчанию индикатор радио кнопки представляет собой круглое отверстие с белым пробелом внутри, но его также можно заменить на окно с текстом или изображением. Текстовое поле поднимается, когда радиокнопка не выбрана, и опускается при ее нажатии.
rdioOne = tk.Radiobutton(app, text='I am raised',
variable=radioValue, value=1,
indicatoron = 0)
Indicator
является опцией для включения или выключения индикатора круглого отверстия кнопки рейда. indicatoron
=indicator on
.
Функция обратного вызова радиобутона Tkinter
То же самое можно сказать и о функции [Tkinter Checkbutton](/ru/tutorial/tkinter-tutorial/tkinter-checkbutton/#Tkinter Checkbutton Callback Function Binding) в опции, как установить функцию обратного вызова кнопок. Используйте опцию command=
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn