Главная


9. Виджет Checkbutton

Назначение виджета Checkbutton (иногда его называют "чекбокс") - дать пользователю возможность ознакомиться и сделать выбор из двух вариантов. На изображении выше показано, как выглядят флажки в выключенном (0) и включенном (1) состоянии в одной реализации: это снимок экрана двух чекбоксов с использованием шрифта Times размером 24 пункта.

Индикатор - это часть кнопки, которая показывает ее состояние, а метка - это текст, который появляется рядом.

Чтобы создать чекбокс в существующем родительском окне или фрейме 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()

Снимает флажок, если он установлен, и устанавливает его, если снят.


>> Виджет Entry