# button

Создание примитива кнопки и управление им.

## СИНТАКСИС

          button имяПути параметры

## СТАНДАРТНЫЕ ПАРАМЕТРЫ

- -activebackground
- -activeforeground
- -anchor
- -background
- -bitmap
- -borderwidth
- -cursor
- -disabledforeground
- -font
- -highlightbackground
- -highlightcolor
- -highlightthickness
- -image
- -justify
- -padx
- -pady
- -relief
- -takefocus
- -text
- -textvariable
- -underline
- -wraplength

Подробное описание этих параметров приведено в разделе options.

## ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ

Имя параметра: | -command
Имя в Базе: | command
Класс в Базе: | Command

Ассоциирует с кнопкой команду Tk. Обычно команда выполняется при отпускании клавиши 1 "Мыши".

Имя параметра: | -default
Имя в Базе: | default
Класс в Базе: | Default

Задает одно из трех состояний изображения ободка кнопки: normal, active или disabled. В активном состоянии кнопка имеет изображение по умолчанию для данной платформы. В нормальном состоянии кнопка изображается в виде, предусмотренном данной платформой для кнопок не по умолчанию; при этом остается достаточно места для изображения кнопки по умолчанию. Нормальное и активное состояние приводят к появлению кнопок одинакового размера. Отключенное состояние приводит к выводу кнопки не по умолчанию, не оставляя при этом места для кнопки по умолчанию. Кнопка в отключенном состоянии может быть меньше кнопки в активном состоянии.

Имя параметра: | -height
Имя в Базе: | height
Класс в Базе: | Height

Задает желаемую высоту кнопки. Если в кнопке выводится изображение или двуцветное изображение, то значение параметра задается в пикселях (т.е., в любом виде, приемлемом для Tk_GetPixels); высота текстовой кнопки задается числом строчек текста. Если параметр не задан, то высота кнопки вычисляется по ее содержимому.

Имя параметра: | -state
Имя в Базе: | state
Класс в Базе: | State

Задает одно из трех состояний кнопки: normal, active или disabled. В нормальном состоянии кнопка изображается с использованием значений параметров foreground и background. В активном состоянии кнопка обычно находится, если на ней расположен курсор. Кнопка в активном состоянии изображается с использованием значений параметров activeForeground и activeBackground. Отключенное состояние указывает на то, что кнопка должна быть нечувствительной: привязки по умолчанию не приводят к запуску примитива и нажатия на кнопку "Мыши" игнорируются. В этом состоянии изображение кнопки определяется значениями параметров disabledForeground и background.

Имя параметра: | -width
Имя в Базе: | width
Класс в Базе: | Width

Задает желаемую ширину кнопки. Если в кнопке выводится изображение или двуцветное изображение, то значение параметра задается в пикселях (т.е., в любом виде, приемлемом для Tk_GetPixels); ширина текстовой кнопки задается числом символов. Если параметр не задан, то ширина кнопки вычисляется по ее содержимому.

## ОПИСАНИЕ

Команда button создает новое окно (задаваемое аргументом имяПути) и превращает его в примитив кнопки. Детали изображения кнопки, такие, как ее цвета, шрифт, текст и объемный вид задаются с помощью описанных выше дополнительных параметров. Команда button возвращает аргумент имяПути. В момент выполнения этой команды не должно существовать окна с именем имяПути, но должен существовать его предок.

Кнопка представляет собой примитив, в котором выводится текстовая строка, изображение или двуцветное изображение. Весь выводимый текст должен быть записан одним шрифтом, однако он может занимать несколько строчек на экране (если в нем есть символы перевода строки или задан параметр wrapLength). Один из символов текста может быть подчеркнут (в соответствии со значением параметра underline). В зависимости от значения параметра button кнопка имеет три разных вида; кнопка может выглядеть выпуклой, вдавленной или плоской, кроме того, она может мигать. При инициации кнопки (нажатием на клавишу 1 "Мыши", когда курсор "Мыши" находится на кнопке) выполняется команда Tcl, указанная в параметре -command.

## КОМАНДА ПРИМИТИВА

Команда button создает новую команду Tcl с именем имяПути. С помощью этой команды можно выполнять различные операции над примитивом. Ее общий вид.

          имяПути параметр арг арг ...

Параметр и аргументы уточняют поведение команды. Примитивы кнопки допускают следующие формы команды:

          имяПути cget параметр

Возвращает текущее значение параметра конфигурации с именем параметр. Параметр может быть любым из параметров команды button.

          имяПути configure параметр значение параметр значение ...

Запрашивает значения параметров конфигурации примитива или изменяет их. Если параметр не указан, то возвращает список, содержащий значения всех допустимых в имениПути параметров (формат списка описан в Tk_ConfigureInfo). Если параметр задан, а его новое значение - нет, то команда возвращает часть полного списка, относящуюся к указанному параметру. Если заданы одна или несколько пар параметр-значение, то указанным параметрам примитива присваиваются новые значения, а команда возвращает пустую строку. Параметр может быть любым из параметров команды button.

          имяПути flash

Заставляет кнопку мигать. Этот эффект достигается путем многократного вывода изображения кнопки поочередно в активном и нормальном состоянии. По окончании работы команды кнопка остается в том же состоянии (активном или нормальном), что и перед началом ее выполнения. Если перед началом выполнения команды кнопка находится в состоянии disabled, то команда игнорируется.

          имяПути invoke

Выполняет команду Tcl, ассоциированную с кнопкой (при наличии такой команды). Возвращаемое значение совпадает с возвращаемым значением команды Tcl (или является пустой строкой, если с кнопкой никакой команды не ассоциировано). Если перед началом выполнения команды кнопка находится в состоянии disabled, то команда игнорируется.

При создании кнопки Tk, в соответствии с типом кнопки, автоматически создает привязки к ней, определяющие ее поведение по умолчанию:

Кнопка становится активной при появлении над ней курсора "Мыши" и дезактивируется, когда курсор ее покидает. В системе Windows привязка активизируется только при нажатии клавиши "1" "Мыши" на кнопке.

При нажатии клавиши "1" "Мыши" на кнопке кнопка "вдавливается", а при отпускании клавиши она восстанавливает свой первоначальный вид.

Если на кнопке клавиша "1" "Мыши" была нажата, а затем отпущена, то выполняется команда, привязанная к данной кнопке. Этого, однако, не происходит, если в момент отпускания клавиши "Мыши" курсор "Мыши" находился вне поля кнопки.

Если кнопка находится в фокусе ввода, то нажатие на клавишу пробела приводит к выполнению команды, привязанной к этой кнопке.

Если кнопка находится в состоянии disabled, то все описанные выше действия не приводят ни к какому результату: кнопка остается неактивной.

Поведение кнопки можно изменить с помощью новых привязок к конкретным примитивам или путем переопределения привязок данного класса.