<!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN> <html> <head> <title>radiobutton</title> </head> <body> <h1>radiobutton</h1> <p>Создание примитива кнопки-переключателя и управление им.</p> <h2><a name=СИНТАКСИС></a>СИНТАКСИС</h2> <pre> <strong>radiobutton</strong> <em>имяПути</em> ?<em>параметры</em>? </pre> <h2><a name=СТАНДАРТНЫЕ_ПАРАМЕТРЫ></a>СТАНДАРТНЫЕ ПАРАМЕТРЫ</h2> <ul> <li><strong>-activeBackground</strong></li> <li><strong>-activeforeground</strong></li> <li><strong>-anchor</strong></li> <li><strong>-background</strong></li> <li><strong>-bitmap</strong></li> <li><strong>-borderwidth</strong></li> <li><strong>-cursor</strong></li> <li><strong>-disabledforeground</strong></li> <li><strong>-font</strong></li> <li><strong>-foreground</strong></li> <li><strong>-highlightbackground</strong></li> <li><strong>-highlightcolor</strong></li> <li><strong>-highlightthickness</strong></li> <li><strong>-image</strong></li> <li><strong>-justify</strong></li> <li><strong>-padx</strong></li> <li><strong>-pady</strong></li> <li><strong>-relief</strong></li> <li><strong>-takefocus</strong></li> <li><strong>-text</strong></li> <li><strong>-textvariable</strong></li> <li><strong>-underline</strong></li> <li><strong>-wraplength</strong></li> </ul> <p>Подробное описание этих параметров приведено в разделе <a href=options.html><strong>options</strong></a>.</p> <h2><a name=ДОПОЛНИТЕЛЬНЫЕ_ПАРАМЕТРЫ_ПРИМИТИВА></a>ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ ПРИМИТИВА</h2> <table> <tr><td>Имя параметра:</td><td><strong>-command</strong></td></tr> <tr><td>Имя в Базе:</td><td><strong>command</strong></td></tr> <tr><td>Класс в Базе:</td><td><strong>Command</strong></td></tr> </table> <p>Ассоциирует с кнопкой команду Tk. Обычно команда выполняется при отпускании клавиши 1 "Мыши" на окне кнопки-переключателя. Перед выполнением команды обновляется значение глобальной переменной переключателя (параметр <strong>-variable</strong>).</p> <table> <tr><td>Имя параметра:</td><td><strong>-height</strong></td></tr> <tr><td>Имя в Базе:</td><td><strong>height</strong></td></tr> <tr><td>Класс в Базе:</td><td><strong>Height</strong></td></tr> </table> <p>Задает желаемую высоту кнопки. Если в кнопке выводится изображение или двуцветное изображение, то значение параметра задается в пикселах (т.е., в любом виде, приемлемом для <strong>Tk_GetPixels</strong>); высота текстовой кнопки задается числом строчек текста. Если параметр не задан, то высота кнопки вычисляется по ее содержимому.</p> <table> <tr><td>Имя параметра:</td><td><strong>-indicatoron</strong></td></tr> <tr><td>Имя в Базе:</td><td><strong>indicatorOn</strong></td></tr> <tr><td>Класс в Базе:</td><td><strong>IndicatorOn</strong></td></tr> </table> <p>Указывает, следует ли выводить индикатор. Значение параметра должно быть булевским. Если значением является ложь, то параметр <strong>relief</strong> игнорируется и примитив всегда изображается вдавленным, если он выделен, и выпуклым в противном случае.</p> <table> <tr><td>Имя параметра:</td><td><strong>-selectcolor</strong></td></tr> <tr><td>Имя в Базе:</td><td><strong>selectColor</strong></td></tr> <tr><td>Класс в Базе:</td><td><strong>Background</strong></td></tr> </table> <p>Задает цвет фона для изображения выделенной кнопки. Если параметр <strong>IndicatorOn</strong> имеет значение истина, то указанный цвет применяется для изображения индикатора. В системе Windows тот же цвет используется в качестве фона изображения индикатора вне зависимости от состояния выделения. Если значением параметра <strong>IndicatorOn</strong> является ложь, то указанный цвет используется в качестве фона для всего примитива, когда он выделен, вместо значений параметров <strong>background</strong> и <strong>activeBackground</strong>.</p> <table> <tr><td>Имя параметра:</td><td><strong>-selectimage</strong></td></tr> <tr><td>Имя в Базе:</td><td><strong>selectImage</strong></td></tr> <tr><td>Класс в Базе:</td><td><strong>SelectImage</strong></td></tr> </table> <p>Задает изображение, выводимое в кнопке при выделении кнопки-переключателя (вместо изображения, заданного параметром <strong>-image</strong>). Если параметр <strong>-image</strong> отсутствует, то значение параметра -<strong>selectimage</strong> игнорируется.</p> <table> <tr><td>Имя параметра:</td><td><strong>-state</strong></td></tr> <tr><td>Имя в Базе:</td><td><strong>state</strong></td></tr> <tr><td>Класс в Базе:</td><td><strong>State</strong></td></tr> </table> <p>Задает одно из трех состояний кнопки-переключателя: <strong>normal</strong>, <strong>active</strong> или <strong>disabled</strong>. В нормальном состоянии кнопка-переключатель изображается с использованием значений параметров <strong>foreground</strong> и <strong>background</strong>. В активном состоянии кнопка-переключатель обычно находится, если на ней расположен курсор. Кнопка-переключатель в активном состоянии изображается с использованием значений параметров <strong>activeForeground</strong> и <strong>activeBackground</strong>. Недоступное состояние указывает на то, что кнопка должна быть нечувствительной: привязки по умолчанию не приводят к запуску примитива и нажатия на кнопку "Мыши:" игнорируются. В этом состоянии изображение кнопки-переключателя определяется значениями параметров <strong>disabledForeground</strong> и <strong>background</strong>. </p> <table> <tr><td>Имя параметра:</td><td><strong>-value</strong></td></tr> <tr><td>Имя в Базе:</td><td><strong>value</strong></td></tr> <tr><td>Класс в Базе:</td><td><strong>Value</strong></td></tr> </table> <p>Задает значение, которое следует заносить в переменную кнопки-переключателя при выделении этой кнопки.</p> <table> <tr><td>Имя параметра:</td><td><strong>-variable</strong></td></tr> <tr><td>Имя в Базе:</td><td><strong>variable</strong></td></tr> <tr><td>Класс в Базе:</td><td><strong>Variable</strong></td></tr> </table> <p>Задает имя глобальной переменной, значение которой нужно устанавливать при выделении кнопки. Изменение значения этой переменной также приводит к изменению состояния выделения кнопки. По умолчанию параметр имеет значение <strong>selectedButton</strong>.</p> <table> <tr><td>Имя параметра:</td><td><strong>-width</strong></td></tr> <tr><td>Имя в Базе:</td><td><strong>width</strong></td></tr> <tr><td>Класс в Базе:</td><td><strong>Width</strong></td></tr> </table> <p>Задает желаемую ширину кнопки-переключателя. Если в кнопке выводится изображение или двуцветное изображение, то значение параметра задается в пикселах (т.е., в любом виде, приемлемом для Tk_GetPixels); ширина текстовой кнопки задается числом символов. Если параметр не задан, то ширина кнопки вычисляется по ее содержимому.</p> <h2><a name=ОПИСАНИЕ></a>ОПИСАНИЕ</h2> <p>Команда <strong>radiobutton</strong> создает новое окно (задаваемое аргументом <em>имяПути</em>) и превращает его в примитив кнопки-переключателя. Детали изображения кнопки-переключателя, такие как ее цвета, шрифт, текст и исходный объемный вид задаются с помощью описанных выше дополнительных параметров. Команда <strong>radiobutton</strong> возвращает аргумент <em>имяПути</em>. В момент выполнения этой команды не должно существовать окна с именем <em>имяПути</em>, но должен существовать его предок.</p> <p>Кнопка-переключатель представляет собой примитив, в котором выводится текстовая строка, изображение или двуцветное изображение, а также ромб или кружок, называемый <em>индикатором</em>. Весь выводимый текст должен быть записан одним шрифтом, однако он может занимать несколько строчек на экране (если в нем есть символы перевода строки или задан параметр <strong>wrapLength</strong>). Один из символов текста может быть подчеркнут (в соответствии со значением параметра <strong>underline</strong>). Кнопка-переключатель обладает всеми характеристиками обычной кнопки, включая следующие: в зависимости от значения параметра <strong>state</strong> кнопка имеет три разных вида; кнопка может выглядеть выпуклой, вдавленной или плоской, кроме того, она может мигать. При инициации кнопки-переключателя (нажатием на клавишу 1 "Мыши", когда курсор "Мыши" находится на кнопке) выполняется команда Tcl.</p> <p>Кроме того, кнопки-переключатели можно <em>выделять</em>. Если кнопка выделена, то индикатор обычно изображается как выделенный, а переменная Tcl, ассоциированная с данной кнопкой, имеет предписанное значение (обычно 1). В ОС Unix индикатор изображается вдавленным и имеет специальный цвет. В системе Windows вместо этого в индикаторе появляется круглая метка. Если кнопка-переключатель не выделена, то индикатор имеет невыделенный вид, а ассоциированная переменная имеет другое значение (обычно "0"). В ОС Unix такой индикатор изображается выпуклым и не имеет специального цвета. В системе Windows в невыделенном индикаторе отсутствует круглая метка. Обычно одна переменная обслуживает несколько кнопок-переключателей, а ее значение указывает, какая из них должна быть выделена. При выделении кнопки происходит изменение значения ассоциированной переменной. Кроме того, каждая кнопка-переключатель отслеживает значение ассоциированной переменной и при его изменении состояние выделения кнопки меняется. По умолчанию используется переменная <strong>selectedButton</strong>; ее значением является имя выделенной кнопки или пустая строка, если ни одна из кнопок, ассоциированных с данной переменной, не выделена. Имя переменной и записываемые в ней значения "выделенная"/"невыделенная" можно поменять с помощью параметров командной строки или в базе данных параметров. С помощью параметров конфигурации можно также поменять вид индикатора (или даже отменить саму необходимость его вывода). По умолчанию выделение кнопки-переключателя происходит при щелчке на кнопке.</p> <h2><a name=КОМАНДА_ПРИМИТИВА></a>КОМАНДА ПРИМИТИВА</h2> <p>Команда <strong>radiobutton</strong> создает новую команду Tcl с именем <em>имяПути</em>. С помощью этой команды можно выполнять различные операции над примитивом. Ее общий вид</p> <pre> имяПути параметр ?арг арг ...? </pre> <p><em>Параметр</em> и <em>арг</em>ументы уточняют поведение команды. Примитивы кнопки-переключателя допускают следующие формы команды:</p> <dl> <dt><em>имяПути</em> <strong>cget</strong> <em>параметр</em></dt> <dd>Возвращает текущее значение параметра конфигурации с именем параметр. Параметр может быть любым из параметров команды <strong>radiobutton</strong>.</dd> <dt><em>имяПути</em> <strong>configure</strong> ?<em>параметр</em>? ?<em>значение параметр значение ...</em>?</dt> <dd>Запрашивает значения параметров конфигурации примитива или изменяет их. Если <em>параметр</em> не указан, то возвращает список, содержащий значения всех допустимых в <em>имениПути</em> параметров (формат списка описан в <strong>Tk_ConfigureInfo</strong>). Если <em>параметр</em> задан, а его новое значение - нет, то команда возвращает часть полного списка, относящуюся к указанному параметру. Если заданы одна или несколько пар <em>параметр-значение,</em> то указанным параметрам примитива присваиваются новые значения, а команда возвращает пустую строку. Параметр может быть любым из параметров команды <strong>radiobutton</strong>.</dd> <dt><em>имяПути</em> <strong>deselect</strong></dt> <dd>Отменяет выделение кнопки-переключателя и придает ассоциированной переменной значение .пустая строка.. Если в момент исполнения команды данная кнопка-переключатель не была выделена, то команда не производит никаких действий.</dd> <dt><em>имяПути</em> <strong>flash</strong></dt> <dd>Заставляет кнопку-переключатель мигать. Этот эффект достигается путем многократного вывода изображения кнопки поочередно в активном и нормальном состоянии. По окончании работы команды кнопка-переключатель остается в том же состоянии (активном или нормальном), что и перед началом ее выполнения. Если перед началом выполнения команды кнопка находится в состоянии <strong>disabled</strong>, то команда игнорируется.</dd> <dt><em>имяПути</em> <strong>invoke</strong></dt> <dd>Приводит в точности к тому же результату, что и нажатие клавиши "Мыши" на кнопке-переключателе: кнопка становится выделенной и выполняется команда Tcl, ассоциированная с кнопкой (при наличии такой команды). Возвращаемое значение совпадает с возвращаемым значением команды Tcl (или является пустой строкой, если с кнопкой никакой команды не ассоциировано). Если перед началом выполнения команды кнопка-переключатель находится в состоянии <strong>disabled</strong>, то команда игнорируется.</dd> <dt><em>имяПути</em> <strong>select</strong></dt> <dd>Выделяет кнопку, перерисовывая ее в новом состоянии и изменяя значение ассоциированной переменной.</dd> </dl> <h2><a name=ПРИВЯЗКИ></a>ПРИВЯЗКИ</h2> <p>При создании кнопки-переключателя Tk автоматически создает привязки к ней, определяющие ее поведение по умолчанию:</p> <ol> <li>в ОС Unix кнопка становится активной при появлении над ней курсора "Мыши" и дезактивируется, когда курсор ее покидает. В системах Mac и Windows при нажатии клавиши 1 "Мыши" на переключателе кнопка активизируется, когда курсор "Мыши" находится на кнопке и дезактивируется, когда курсор ее покидает;</li> <li>при нажатии клавиши 1 "Мыши" на кнопке-переключателе кнопка становится выделенной и выполняется команда, привязанная к ней;</li> <li>если кнопка-переключатель находится в фокусе ввода, то нажатие на клавишу пробела приводит к выполнению команды, привязанной к этой кнопке;</li> <li>если кнопка-переключатель находится в состоянии <strong>disabled</strong>, то все описанные выше действия не приводят ни к какому результату: кнопка остается безответной.</li> </ol> <p>Поведение кнопки-переключателя можно изменить с помощью новых привязок к конкретным примитивам или путем переопределения привязок данного класса.</p> </body> </html>