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