Радиобаттоны - это наборы связанных между собой виджетов, которые позволяют пользователю выбрать только один из множества вариантов. Каждая радиокнопка состоит из двух частей, индикатора и метки:

Индикатор - это ромбовидная часть, которая становится красной при выборе элемента.
Метка - это текст, хотя в качестве метки можно использовать изображение или битмап.
При желании можно обойтись без индикатора. В этом случае радиобаттоны будут выглядеть как " нажимаемые" кнопки, где выбранный элемент будет утоплен, а остальные - приподняты.
Чтобы объединить несколько радиобаттонов в функциональную группу, создайте одну управляющую переменную (см. Раздел 52, "Управляющие переменные: значения за виджетами", ниже) и установите параметр variable каждого радиобаттона на эту переменную.
Управляющая переменная может быть либо IntVar, либо StringVar. Если две или более радиокнопок имеют одну и ту же управляющую переменную, установка любой из них очистит остальные.
Каждая радиокнопка в группе должна иметь уникальный параметр value того же типа, что и управляющая переменная. Например, группа из трех радиокнопок может иметь общий параметр IntVar и иметь значения 0, 1 и 99. Или вы можете использовать управляющую переменную StringVar и задать радиокнопкам value опции вроде "слишком горячо", "слишком холодно" и "в самый раз".
Чтобы создать новый виджет Radiobutton в качестве дочернего элемента корневого окна или фрейма с именем parent:
w = tk.Radiobutton(parent, option, ...)
Этот конструктор возвращает новый виджет Radiobutton. Опции:
Таблица 29. Опции виджета Radiobutton
activebackground |
Цвет фона при наведении курсора мыши на радиобаттон. См. Раздел 5.3, "Цвета". |
activeforeground |
Цвет переднего плана при наведении курсора мыши на радиобаттон. |
anchor |
Если виджет занимает пространство больше, чем ему нужно, этот параметр определяет, где будет располагаться radiobutton в этом пространстве. По умолчанию используется значение anchor=tk.CENTER. Другие варианты позиционирования см. в Раздел 5.5, "Якоря". Например, если задать anchor=tk.NE, то радиобаттон будет размещен в правом верхнем углу доступного пространства. |
bg или background |
Обычный фоновый цвет за индикатором и меткой. |
bitmap |
Чтобы отобразить битовое изображение на радиокнопке, установите этот параметр в качестве битмапа. |
bd или borderwidth |
Размер границы вокруг индикатора. По умолчанию - два пикселя. Возможные значения см. в Раздел 5.1, "Размеры". |
command |
Процедура, которая будет вызываться каждый раз, когда пользователь изменит состояние этой радиокнопки. |
compound |
Если вы указываете и текст, и графику (битмап или изображение), этот параметр определяет, где отображается графика относительно текста. Возможные значения: tk.NONE (значение по умолчанию), tk.TOP, tk.BOTTOM, tk.LEFT, tk.RIGHT и tk.CENTER. Например, compound=tk.BOTTOM расположит графику под текстом. Если указать compound=tk.NONE, то графика будет отображаться, а текст (если таковой имеется) - нет. |
cursor |
Если задать в качестве параметра имя курсора (см. Раздел 5.8, "Курсоры"), то курсор мыши будет меняться на этот шаблон, когда он будет находиться над радиобаттоном. |
disabledforeground |
Цвет переднего плана, используемый для отображения текста отключенной радиокнопки. По умолчанию это затушеванный вариант цвета переднего плана. |
font |
Шрифт, используемый для text. См. раздел Раздел 5.4, "Шрифты". |
fg или foreground |
Цвет, используемый для отображения текста. |
height |
Количество строк (не пикселей) текста на радиобаттоне. По умолчанию 1. |
highlightbackground |
Цвет подсветки фокуса, когда кнопка не имеет фокуса. См. Раздел 53, "Фокус: маршрутизация ввода с клавиатуры". |
highlightcolor |
Цвет подсветки фокуса, когда radiobutton имеет фокус. |
highlightthickness |
Толщина подсветки фокуса. По умолчанию 1. Установите highlightthickness=0, чтобы подавить отображение подсветки фокуса. |
image |
Чтобы отобразить графическое изображение вместо текста для этой кнопки, установите этот параметр для объекта image. См. раздел Раздел 5.9, "Изображения". Изображение появляется, когда кнопка не выбрана; сравните с selectimage, ниже. |
indicatoron |
Обычно радиобаттон отображает свой индикатор. Если вы установите этот параметр в ноль, индикатор исчезнет, и весь виджет примет вид "нажимаемой" кнопки, которая выглядит поднятой, когда она снята, и опущенной, когда она установлена. Вы можете увеличить значение borderwidth, чтобы легче было видеть состояние такого элемента управления. |
justify |
Если text содержит несколько строк, эта опция управляет тем, как текст будет выравниваться: tk.CENTER (по умолчанию), tk.LEFT или tk.RIGHT. |
offrelief |
Если вы подавляете индикатор, установив indicatoron=False, опция offrelief задает стиль рельефа, который будет отображаться, когда radiobutton не выбран. По умолчанию используется tk.RAISED. |
overrelief |
Определяет стиль рельефа, который будет отображаться при наведении курсора мыши на радиобаттон. |
padx |
Сколько места оставлять слева и справа от радиобаттона и текста. По умолчанию 1. |
pady |
Сколько места оставлять над и под радиобаттоном и текстом. По умолчанию равно 1. |
relief |
По умолчанию радиобаттон будет иметь рельеф tk.FLAT, чтобы не выделяться на фоне. Дополнительные варианты трехмерных эффектов см. в Раздел 5.6, "Стили рельефа". Вы также можете использовать relief=tk.SOLID, который отображает сплошную черную рамку вокруг кнопки. |
selectcolor |
Цвет color радиобаттона, когда он установлен. По умолчанию - красный. |
selectimage |
Если вы используете опцию image для отображения графики вместо текста при очистке радиокнопки, вы можете установить опцию selectimage на другое изображение, которое будет отображаться при установке радиокнопки. См. Раздел 5.9, "Изображения". |
state |
По умолчанию используется state=tk.NORMAL, но вы можете установить state=tk.DISABLED, чтобы затемнить элемент управления и сделать его невосприимчивым. Если курсор в данный момент находится над радиокнопкой, то ее состояние будет tk.ACTIVE. |
takefocus |
По умолчанию фокус ввода (см. Раздел 53, "Фокус: маршрутизация ввода с клавиатуры") будет проходить через радиобаттон. Если вы установите takefocus=0, фокус не будет посещать данный radiobutton. |
text |
Метка, отображаемая рядом с радиокнопкой. Используйте новые строки ('\n') для отображения нескольких строк текста. |
textvariable |
Если вам нужно изменить метку на радиокнопке во время выполнения, создайте StringVar (см. Раздел 52, "Управляющие переменные: значения за виджетами") для управления текущим значением и установите этот параметр для этой управляющей переменной. При изменении значения управляющей переменной аннотация радиокнопки будет автоматически меняться на этот текст. |
underline |
При значении по умолчанию -1 ни один из символов текстовой метки не будет подчеркнут. Установите этот параметр на индекс символа в тексте (считая от нуля), чтобы подчеркнуть этот символ. |
value |
При включении радиокнопки пользователем ее управляющая переменная устанавливается в текущий параметр value. Если управляющая переменная является IntVar, присвойте каждой радиокнопке в группе свой целочисленный параметр value. Если управляющая переменная представляет собой StringVar, присвойте каждой радиокнопке свой строковый параметр value. |
variable |
Управляющая переменная, которую данная радиокнопка разделяет с другими радиокнопками в группе; см. Раздел 52, "Управляющие переменные: значения за виджетами". Это может быть либо IntVar, либо StringVar. |
width |
Ширина radiobutton по умолчанию определяется размером отображаемого изображения или текста. Вы можете установить этот параметр на количество символов (не пикселей), и в радиобаттоне всегда будет место для этого количества символов. |
wraplength |
Обычно строки не переносятся. Вы можете задать число символов, и все строки будут разбиты на части не длиннее этого числа. |
Методы для объектов radiobutton включают:.
.deselect()
Очищает (выключает) радиокнопку.
.flash()
Мигает несколько раз между активным и обычным цветами радиобаттона, но оставляет его в том виде, в котором он был запущен.
.invoke()
Вы можете вызвать этот метод, чтобы получить те же действия, которые произошли бы, если бы пользователь щелкнул на радиобаттоне, чтобы изменить его состояние.
.select()
Устанавливает (включает) радиокнопку.