projman/hlp/ru/tk/canvas.html

1909 lines
127 KiB
HTML
Raw Normal View History

2015-10-19 13:27:31 +03:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>canvas</title>
</head>
<body>
<h1>canvas</h1>
<p>Создание примитивов канвы и работа с ними.</p>
2015-10-19 13:27:31 +03:00
<h2><a name="СИНТАКСИС"></a>СИНТАКСИС</h2>
2015-10-19 13:27:31 +03:00
<pre>
<strong>canvas</strong> <em>имяПути параметры</em>
2015-10-19 13:27:31 +03:00
</pre>
<h2><a name="СТАНДАРТНЫЕАРАМЕТРЫ"></a>СТАНДАРТНЫЕ ПАРАМЕТРЫ</h2>
2015-10-19 13:27:31 +03:00
<table>
<tbody>
<tr>
<td><strong>-background</strong></td>
<td><strong>-highlightthickness</strong></td>
<td><strong>-insertwidth</strong></td>
</tr>
<tr>
<td><strong>-takefocus</strong></td>
<td><strong>-borderwidth</strong></td>
<td><strong>-insertbackground</strong></td>
</tr>
<tr>
<td><strong>-relief</strong></td>
<td><strong>-xscrollcommand</strong></td>
<td><strong>-cursor</strong></td>
</tr>
<tr>
<td><strong>-insertborderwidth</strong></td>
<td><strong>-selectbackground</strong></td>
<td><strong>-yscrollcommand</strong></td>
</tr>
<tr>
<td><strong>-highlightbackground</strong></td>
<td><strong>-insertofftime</strong></td>
<td><strong>-selectborderwidth</strong></td>
</tr>
<tr>
<td><strong>-highlightcolor</strong></td>
<td><strong>-insertontime</strong></td>
<td><strong>-selectforeground</strong></td>
</tr>
</tbody>
</table>
<p>Подробное описание параметров приведено в разделе <strong><a
2015-10-19 13:27:31 +03:00
href="options.html">options</a></strong>.</p>
<h2><a name=АРАМЕТРЫ_СВЯЗАННЫЕСКЛЮЧИТЕЛЬНО_СРИМИТИВАМИ"></a>ПАРАМЕТРЫ, СВЯЗАННЫЕ ИСКЛЮЧИТЕЛЬНО С ПРИМИТИВАМИ</h2>
2015-10-19 13:27:31 +03:00
<table>
<tr><td>Имя параметра:</td><td><strong>-closeenough</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>closeEnough</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>CloseEnough</strong></td></tr>
2015-10-19 13:27:31 +03:00
</table>
<p>Задает значение с плавающей точкой, указывающее расстояние от
курсора до объекта на экране, при котором курсор считается
находящимся внутри объекта. По умолчанию имеет значение 1.0</p>
2015-10-19 13:27:31 +03:00
<table>
<tr><td>Имя параметра:</td><td><strong>-confine</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>confine</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>Confine</strong></td></tr>
2015-10-19 13:27:31 +03:00
</table>
<p>Булевское значение, указывающее, допустимо ли устанавливать вид
канвы вне области, заданной аргументом
<strong>scrollRegion</strong>. По умолчанию имеет значение
истина, т.е. такая установка запрещена.</p>
2015-10-19 13:27:31 +03:00
<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>
2015-10-19 13:27:31 +03:00
</table>
<p>Задает желаемую высоту окна, которое примитив канвы должен
запросить у своего графического менеджера. Значение может иметь
любой вид из описанных ниже (см. &quot;<a href=
"#КООРДИНАТЫ">Координаты</a>&quot;).</p>
2015-10-19 13:27:31 +03:00
<table>
<tr><td>Имя параметра:</td><td><strong>-scrollregion</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>scrollRegion</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>ScrollRegion</strong></td></tr>
2015-10-19 13:27:31 +03:00
</table>
<p>Задает список из четырех величин, описывающих координаты левой,
верхней, правой и нижней границы прямоугольной области. Эта
область используется для прокрутки и считается границей
информации в канве. Каждая из координат может иметь любой вид из
описанных ниже в (см. &quot;<a href=
"#КООРДИНАТЫ">Координаты</a>&quot;).</p>
2015-10-19 13:27:31 +03:00
<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>
2015-10-19 13:27:31 +03:00
</table>
<p>Задает желаемую ширину окна, которое примитив канвы должен
запросить у своего графического менеджера. Значение может иметь
любой вид из описанных ниже (см. <a href=
"#КООРДИНАТЫ">Координаты</a>).</p>
2015-10-19 13:27:31 +03:00
<table>
<tr><td>Имя параметра:</td><td><strong>-xscrollincrement</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>xScrollincrement</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>Scrollincrement</strong></td></tr>
2015-10-19 13:27:31 +03:00
</table>
<p>Задает шаг горизонтальной прокрутки в любом из принятых видов
для расстояний на экране. Если указанная величина положительна,
то <em>x</em>-координата левой границы будет выбрана
пропорциональной значению <strong>xScrollincrement</strong> с
четным коэффициентом пропорциональности. Кроме того, шаг
прокрутки (при нажатии на стрелки влево и вправо полосы
прокрутки) также принимает значение
<strong>xScrollincrement</strong>. Если значение параметра
не положительно, то прокрутка выполняется без ограничений.</p>
2015-10-19 13:27:31 +03:00
<table>
<tr><td>Имя параметра:</td><td><strong>-yscrollincrement</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>yScrollincrement</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>Scrollincrement</strong></td></tr>
2015-10-19 13:27:31 +03:00
</table>
<p>Задает шаг вертикальной прокрутки в любом из принятых видов для
расстояний на экране. Если указанная величина положительна, то
<em>y</em>-координата верхней границы будет выбрана
пропорциональной значению <strong>yScrollincrement</strong> с
четным коэффициентом пропорциональности. Кроме того, шаг
прокрутки (при нажатии на стрелки вверх и вниз полосы прокрутки)
также принимает значение <strong>yScrollincrement</strong>. Если
значение параметра не положительно, то прокрутка выполняется без
ограничений.</p>
2015-10-19 13:27:31 +03:00
<h2><a name="ВВЕДЕНИЕ"></a>ВВЕДЕНИЕ</h2>
<p>Команда <strong>canvas</strong> создает новое окно (заданное
аргументом <em>имяПути</em>) и преобразует его в примитив
канвы. С помощью описанных выше дополнительных аргументов в
строке команды или в базе данных параметров можно задать такие
характеристики канвы, как цвета или трехмерное
представление. Команда <strong>canvas</strong> возвращает свой
аргумент <em>имяПути</em>. В момент исполнения команды окно с
именем <em>имяПути</em> должно отсутствовать, однако его
родительское должно существовать.
<p>Примитивы канвы реализуют структурную графику. Канва изображает
некоторый набор <em>элементов</em>, таких как прямоугольники,
окружности, линии или текстовые элементы. Над элементами можно
выполнять различные действия (например, передвигать или
перекрашивать их), и к ним можно приписывать команды способом,
аналогичным тому, как команда <a href=
"#bind"><strong>bind</strong></a> привязывает команды к
примитивам. Можно, например, приписать некоторую команду
событию &lt;<strong>Button-1</strong>&gt;, и эта команда будет
выполняться всякий раз при нажатии кнопки 1 на данном
элементе. Таким образом, поведение элементов канвы может
определяться привязанным к ним скриптам Tcl.</p>
<h3>СПИСОК ВЫВОДА</h3>
<p> Элементы канвы упорядочены, так что при выводе на экран
сначала выводится первый элемент, за ним второй и так
далее. Очередные выводимые элементы заслоняют элементы, уже
выведенные на экран; иногда про них говорят, что они выводятся
поверх первых. При создании нового элемента он заносится на
последнее место в списке, поверх всех элементов, созданных
ранее. Порядок элементов в списке можно поменять с помощью
команд примитивов.</p>
<p>Элементы-окна представляют собой исключение из приведенного
правила. Базовая система управления окнами предполагает, что
новое окно всегда выводится поверх всех предыдущих. Кроме того,
команды примитивов канвы не влияют на порядок в стеке окон;
вместо них надо использовать команды Tk <a href=
"raise.html"><strong>raise</strong></a> и <a href=
2015-10-19 13:27:31 +03:00
"lower.html"><strong>lower</strong></a>.</p>
<h3>ИДЕНТИФИКАТОРЫ И ТЕГИ ЭЛЕМЕНТОВ</h3>
<p>Есть два способа обращаться к элементам примитивов канвы по
идентификатору и по тегу. У каждого элемента есть свой
уникальный идентификационный номер, присваиваемый при создании
элемента. Идентификатор элемента никогда не изменяется, и ни
один идентификатор не используется дважды на протяжении
существования данного примитива канвы.</p>
<p>Кроме того, каждому элементу канвы можно приписать несколько
<em>тег</em>ов. Тег это просто строка символов, и он может быть
иметь любой вид кроме числового. Например, &quot;x123&quot;
годится, а &quot;123&quot; нет. Один и тот же тег можно
приписывать нескольким элементам. Обычно это свойство
используется для объединения элементов по характерным
признакам. Например, всем выбранным элементам можно приписать
тег &quot;selected&quot;.</p>
<p>Тег <strong>all</strong> приписан по умолчанию всем элементам
канвы; с его помощью выполняются операции на всех элементах
канвы.</p>
<p>Тегом <strong>current</strong> автоматически управляет Tk. Он
относится к <em>текущему элементу</em>, находящемуся поверх всех
остальных из тех, чья область покрывает положение курсора. Если
курсор .Мыши. расположен вне примитива канвы или если он не
накрывается никаким элементом, то тег <strong>current</strong>
не приписывается никакому элементу.</p>
<p>При указании элемента в командах примитивов канвы реализован
следующий подход: если описатель является числом, то это число
интерпретируется как идентификатор элемента. В противном случае
описатель относится ко всем элементам с таким
тегом. Используемый ниже символ <em>тегИлиИд</em> указывает на
то, что соответствующий аргумент может быть тегом, которому
отвечает несколько (быть может, ни одного) элемента, или
идентификатором, которому отвечает единственный
элемент. Некоторые команды примитивов могут работать
одновременно только с одним элементом; если символу
<em>тегИлиИд</em> соответствует несколько элементов, то такая
команда обычно обрабатывает первый (самый нижний) элемент списка
вывода, к которому она применима. Исключения приведены ниже в
описаниях команд примитивов.</p>
<h3><a name="КООРДИНАТЫ"></a>КООРДИНАТЫ</h3>
<p>Все координаты канвы записываются в форме чисел с плавающей
точкой. Координаты и расстояния на экране задаются в виде чисел
с плавающей точкой, за которыми может следовать одна или
несколько букв. Если буквы нет, то единицей измерения расстояния
является пиксель. Буква <strong>m</strong> указывает на
измерение расстояний в миллиметрах; буква <strong>c</strong> в
сантиметрах; <strong>i</strong> в дюймах; <strong>p</strong> в
точках принтера (1/72 дюйма). При перемещении по экрану вниз
<em>y</em>-координата увеличивается; <em>x</em>-координата
возрастает при перемещении по экрану вправо.</p>
<h3>ПРЕОБРАЗОВАНИЯ</h3>
<p>Обычно начало системы координат канвы расположено в верхнем
левом углу окна, содержащего канву. Положение начала координат
относительно окна можно изменить с помощью команд
<strong>xview</strong> и <strong>yview</strong>. Обычно этой
возможностью пользуются при прокрутке. Канва не позволяет
растягивать систему координат или поворачивать ее по отношению к
системе координат окна.</p>
<p>Отдельные элементы канвы можно сдвигать с помощью описываемых
ниже команд примитивов; их можно также растянуть или сжать, но
нельзя повернуть.</p>
<h3>ИНДЕКСЫ</h3>
<p>Для указания на отдельные части текста в текстовых элементах
поддерживаются <em>индексы</em>. Индексы используются в командах
вставки текста, удаления части текста, установки курсора ввода.
Индекс можно определить одним из нескольких возможных способов;
различные типы элементов поддерживают индексы различных типов.
Ниже приведено описание видов индексов; при введении новых типов
текстовых элементов имеет смысл обеспечить поддержку разумного
подмножества видов индекса. Отметим, что можно ссылаться на
символ, следующий непосредственно за последним символом
текстового элемента; эта возможность полезна, например, при
вводе нового текста в конец элемента.</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt>число</dt>
2015-10-19 13:27:31 +03:00
<dd>Десятичное число, указывающее положение нужного символа
внутри текстового элемента. &quot;0&quot; указывает на первый символ,
1 на второй и т.д. Отрицательные числа интерпретируются как
0, а числа, большие длины текстового элемента как если бы они
равнялись этой длине.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>end</strong></dt>
<dd>Указывает на символ, следующий непосредственно за последним
символом текстового элемента (совпадает с числом символов в
элементе).</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>insert</strong></dt>
<dd>Указывает на символ, непосредственно предшествующий курсору
ввода.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>sel.first</strong></dt>
<dd>Указывает на первый выделенный символ в элементе. Если в
элементе нет выделенных символов, то такая форма
запрещена.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>sel.last</strong></dt>
<dd>Указывает на последний выделенный символ в элементе. Если в
элементе нет выделенных символов, то такая форма
запрещена.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>@</strong><em>x</em><em>,y</em></dt>
<dd>Указывает на символ в позиции (<em>x,y</em>), где <em>x</em>
и <em>y</em> заданы в координатной системе канвы. Если
значения координат выходят за пределы, занятые текстовым
элементом, то берется первый или последний символ в строке,
ближайшей к указанной позиции.</dd>
2015-10-19 13:27:31 +03:00
</dl>
<h2><a name="КОМАНДАРИМИТИВА"></a>КОМАНДА ПРИМИТИВА</h2>
2015-10-19 13:27:31 +03:00
<p>Команда <strong>canvas</strong> создает новую команду Tcl с
именем <em>имяПути</em>. С помощью этой новой команды можно
выполнять различные операции над примитивами. Она имеет
следующий общий вид:</p>
2015-10-19 13:27:31 +03:00
<pre>
<em>имяПути</em> <strong>параметр</strong> <em>аргумент аргумент</em> ...
2015-10-19 13:27:31 +03:00
</pre>
<p>Параметр и аргументы уточняют поведение команды. В примитивах
канвы могут встречаться следующие команды примитивов:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>addtag</strong> <em>тег спец_поиска
арг арг</em> ...</dt>
<dd><p>Добавляет <em>тег</em> к списку тегов, связанному с
каждым элементом, удовлетворяющим ограничениям, заданным
<em>спец_поиска</em> и аргументами (если такого тега в
списке еще нет). Если ни один элемент не удовлетворяет
наложенным ограничениям, то команда не производит никаких
действий. Результатом выполнения команды является пустая
строка. <em>Спец_поиска</em> и аргументы могут принимать
следующие значения:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>above</strong> <em>тегИлиИд</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Выделяет элемент, непосредственно следующий
(расположенный поверх) за элементом <em>тегИлиИд</em> в
списке вывода. Если аргумент <em>тегИлиИд</em> задает
несколько элементов, то команда выполняется по отношению к
последнему (самому верхнему) из них.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>all</strong></dt>
<dd>Выделяет все элементы канвы.</dd>
<dt><strong>below</strong> <em>тегИлиИд</em></dt>
<dd>Выделяет элемент, непосредственно предшествующий
(расположенный ниже) элементу <em>тегИлиИд</em> в списке
вывода. Если аргумент <em>тегИлиИд</em> задает
несколько элементов, то команда выполняется по отношению к
первому (самому нижнему) из них.</dd>
<dt><strong>closest</strong> <em>x y нимб начало</em></dt>
<dd>Выделяет элемент, ближайший к точке с координатами
(<em>x</em>,<em>y</em>). Если таких элементов несколько
(например, несколько элементов накрывают эту точку), то
выделяется самый верхний из них. <em>Нимб</em>, если он
задан, должен быть неотрицательным числом. Всякий элемент,
расстояние от которого до точки (<em>x</em>,<em>y</em>)
меньше, чем <em>нимб</em>, считается накрывающим эту
точку. Аргумент <em>начало</em> позволяет обходить по
кругу все ближайшие к точке элементы. <em>Начало</em>,
если оно задано, представляет собой идентификатор или тег
элемента (в случае, если это тег, будет выбран первый
элемент списка, соответствующего данному тегу). В этой
форме выделяется не самый верхний элемент из ближайших, а
самый верхний из тех ближайших элементов, которые ниже
элемента <em>начало</em> в списке вывода. В случае если
таких элементов нет, команда выполняется так же, как и в
отсутствие аргумента <em>начало</em>.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>enclosed</strong> <em>x1 y1 x2 y2</em> </dt>
<dd>Выделяет все элементы, заключенные внутри прямоугольника
с углами (<em>x1</em>,<em>y1</em>) и
(<em>x2</em>,<em>y2</em>). Величина <em>x1</em> должна
быть не меньше, чем <em>x2</em>, а <em>y1</em> не меньше,
чем <em>y2</em>.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>overlapping</strong> <em>x1 y1 x2 y2I</em></dt>
<dd>Выделяет все элементы, перекрывающиеся с прямоугольником
с углами (<em>x1</em>,<em>y1</em>) и
(<em>x2</em>,<em>y2</em>). Величина <em>x1</em> должна
быть не меньше, чем <em>x2</em>, а <em>y1</em> не меньше,
чем <em>y2</em>.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>withtag</strong> <em>тегИлиИд</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Выделяет все элементы, заданные <em>тегИлиИд</em>.</dd>
2015-10-19 13:27:31 +03:00
</dl>
<dt><em>имяПути</em> <strong>bbox</strong> <em>тегИлиИд
тегИлиИд тегИлиИд</em></dt>
<dd>Возвращает список из четырех элементов приближенных значений
координат прямоугольника, ограничивающего все элементы,
заданные аргументами <em>тегИлиИд</em>. Список имеет вид
<em>x1 y1 x2 y2</em>, причем экранные представления
элементов находятся в области, ограниченной слева вертикальной
прямой с координатой <em>x1</em>, справа вертикальной прямой с
координатой <em>x2</em>, сверху горизонтальной прямой с
координатой <em>y1</em>, снизу горизонтальной прямой с
координатой <em>y2</em>. Значения координат могут отличаться
от точных на несколько пикселей. Если под описание
<em>тегИлиИд</em> не подходит ни один элемент или если у этих
элементов прямоугольники вывода пусты, то команда возвращает
пустую строку.</dd>
<dt><a name="bind"></a><em>имяПути</em> <strong>bind</strong>
<em>тегИлиИд последовательность команда</em></dt>
<dd><p>Эта команда привязывает ко всем элементам, заданным
аргументом <em>тегИлиИд</em>, команду, которая выполняется
всякий раз при наступлении события, описываемого
последовательностью, на одном из этих элементов. Эта команда
похожа на команду <a href="bind.html"><strong>bind</strong></a>,
за исключением того, что она действует на элементах канвы, а
не на целых примитивах. Синтаксис последовательности и
подстановки, выполняемые в команде перед ее выполнением,
подробно описаны в <a
href="#bind"><strong>bind</strong></a>. Если в команде
заданы все аргументы, то создаваемая привязка замещает все
предыдущие привязки для той же последовательности и
<em>тегИлиИд</em> (если первый символ в команде +, то новая
привязка присоединяется к уже существующим, а не замещает
их). В этом случае команда возвращает пустую строку. Если
аргумент команда опущен, то возвращается строка команды,
связанной с <em>тегИлиИд</em> и <em>последовательностью</em>
(если такой команды нет, то возникает ошибка). Если опущены
оба аргумента команда и последовательность, то результатом
выполнения служит список всех последовательностей, для
которых определена привязка к <em>тегИлиИд</em>.</p>
<p>Привязки можно задавать только для событий, связанных с
клавиатурой или &quot;Мышью&quot; (таких как
2015-10-19 13:27:31 +03:00
<strong>Enter</strong>, <strong>Leave</strong>,
<strong>ButtonPress</strong>, <strong>Motion</strong> и
<strong>KeyPress</strong>), а также для виртуальных событий.
При работе с событиями в канве используется текущий элемент,
определенный выше (см. &quot;<a href= "#ИДЕНТИФИКАТОРЫ И
ТЕГИ ЭЛЕМЕНТОВ">Идентификаторы и теги
элементов</a>&quot;). События <strong>Enter</strong> и
<strong>Leave</strong> наступают, когда элемент становится
или перестает быть текущим; обратите внимание на отличие
этих событий от событий <strong>Enter</strong> и
<strong>Leave</strong> для окон. События, связанные с
&quot;Мышью&quot;, наступают только для текущего элемента
(если таковой имеется; подробности см. ниже в описании
команды примитива <a href=
"#focus"><strong>focus</strong></a>). При использовании в
привязке виртуального события привязка может подключиться
только, если в определении этого виртуального события
участвует событие, связанное с &quot;Мышью&quot; или
клавиатурой.</p>
<p>Данному событию может соответствовать несколько привязок.
Такое может произойти, например, если одна привязка
осуществляется к идентификатору события, а другая к одному
из его тегов. В подобном случае выполняются все привязанные
события. Первым идет скрипт, привязанный к тегу
<strong>all</strong>, затем поочередно выполняются скрипты,
привязанные к каждому из тегов элемента (в порядке их
следования), последней идет привязка к идентификатору
элемента. Если несколько привязок соответствует одному тегу,
то выполняется лишь самая конкретная из них. Команда <a
href= "../tcl/continue.html"><strong>continue</strong></a> в
скрипте прекращает его выполнение, команда <a
2015-10-19 13:27:31 +03:00
href="../tcl/reak.html"><strong>break</strong></a>
прекращает выполнение скрипта и всех последующих скриптов
для события, как и в случае команды <a href=
2015-10-19 13:27:31 +03:00
"#bind"><strong>bind</strong></a>.</p>
<p>Если с помощью команды <a
href="#bind"><strong>bind</strong></a> к окну канвы были
выполнены дополнительные привязки, то они выполняются после
привязок к элементам канвы, выполненных командой примитива
2015-10-19 13:27:31 +03:00
<a href="#bind"><strong>bind</strong></a>.</p>
</dd>
<dt><em>имяПути</em> <strong>canvasx</strong> <em>xЭкрана
шагСетки</em></dt>
2015-10-19 13:27:31 +03:00
<dd>По заданной <em>x</em>-координате <em>xЭкрана</em> окна
возвращает <em>x</em>-координату канвы, расположенной на этом
месте. Если задан <em>шагСетки</em>, то координата канвы
округляется к ближайшему кратному единиц
<em>шагаСетки</em>.</dd>
<dt><em>имяПути</em> <strong>canvasy</strong> <em>yЭкрана
шагСетки</em></dt>
<dd>По заданной <em>y</em>-координате <em>yЭкрана</em> окна
возвращает <em>y</em>-координату канвы, расположенной на этом
месте. Если задан <em>шагСетки</em>, то координата канвы
округляется к ближайшему кратному единиц
<em>шагаСетки</em>.</dd>
<dt><em>имяПути</em> <strong>cget</strong> <em>параметр</em></dt>
<dd>Возвращает текущее значение параметра конфигурации,
заданного аргументом <em>параметр</em>.</dd>
<dt><em>имяПути</em> <strong>cоnfigure</strong> <em>параметр
значение параметр значение ...</em></dt>
<dd>Сообщает текущие параметры конфигурации примитива или
модифицирует их. Если <em>параметр</em> не задан, то
возвращает список всех текущих значений параметров
<em>имениПути</em> (формат списка приведен в описании
<strong>Tk_ConfigureInfo</strong>). Если <em>параметр</em>
задан без указания значения, то команда возвращает список,
описывающий указанный параметр (этот список совпадает с частью
списка, возвращаемого при отсутствии параметра). Если заданы
одна или несколько пар <em>параметр-значение</em>, то команда
присваивает указанным параметрам примитива данные значения;
результатом ее выполнения в этом случае служит пустая
строка. <em>Параметр</em> может принимать любые
<em>значения</em>, воспринимаемые командой
2015-10-19 13:27:31 +03:00
<strong>canvas</strong>.</dd>
<dt><em>имяПути</em> <strong>coords</strong> <em>тегИлиИд x0 y0
2015-10-19 13:27:31 +03:00
...</em></dt>
<dd>Сообщает текущие значения координат, определяющих элемент,
или модифицирует их. Если координаты не заданы, то возвращает
список, составленный из координат элемента, указанного
аргументом <em>тегИлиИд</em>. Если координаты заданы, то их
значения замещают текущие значения координат означенного
элемента. Если <em>тегИлиИд</em> указывает на
несколько элементов, то команда выполняется для идущего первым
в списке вывода.</dd>
<dt><em>имяПути</em> <strong>create</strong> <em>типx y x y
... параметр значение ...</em></dt>
<dd>Создает в <em>имяПути</em> новый элемент типа тип. Формат
аргументов, следующих за аргументом тип, зависит от значения
типа, однако обычно эти аргументы представляют собой
координаты одной или нескольких точек, за которыми следуют
спецификации нескольких параметров элемента (быть может, ни
одного). Подробнее синтаксис этой команды описан ниже (см.
&quot;Описания различных типов&quot;).</dd>
<dt><em>имяПути</em> <strong>dchars</strong> <em>тегИлиИд первый
последний</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Удаляет символы с <em>первого</em> по <em>последний</em>
включительно в каждом элементе, подходящем под описание
<em>тегИлиИд</em>. Если какие-либо из этих элементов не
поддерживают текстовых операций, то они
пропускаются. Аргументы <em>первый</em> и <em>последний</em>
должны быть индексами символов в элементе, заданными в
соответствии с описанием, приведенным в разделе &quot;<a
href="#ИНДЕКСЫ">Индексы</a>&quot;. При опущенном аргументе
<em>последний</em> его значение принимается по умолчанию
равным значению <em>первый</em>. Команда возвращает пустую
строку.</dd>
<dt><em>имяПути</em> <strong>delete</strong> <em>тегИлиИд
тегИлиИд ...</em></dt>
<dd>Удаляет все элементы, подходящие под описание, заданное
аргументами, и возвращает пустую строку.</dd>
<dt><em>имяПути</em> <strong>dtag</strong> <em>тегИлиИд
тегДляУдаления</em></dt>
<dd>Удаляет все теги <em>тегДляУдаления</em> из списка тегов,
ассоциированного с каждым из элементов, описываемых аргументом
<em>тегИлиИд</em>. Если ни один из тегов такого элемента не
входит в <em>тегДляУдаления</em>, то никаких действий не
производится. Если аргумент <em>тегДляУдаления</em>
отсутствует, то его значение по умолчанию совпадает с
<em>тегИлиИд</em>. Команда возвращает пустую строку.</dd>
<dt><em>имяПути</em> <strong>find</strong> <em>командаПоиска арг
арг ...</em></dt>
<dd>Команда возвращает список, состоящий из всех элементов,
удовлетворяющих критериям поиска, заданным аргументами
<em>командаПоиска</em> и <em>арг</em>. Аргументы
<em>командаПоиска</em> и <em>арг</em> могут иметь любой вид,
воспринимаемый командой <strong>addtag</strong>. Список
элементов представлен в виде стека, в котором нижний элемент
идет последним.</dd>
<dt><em>имяПути</em> <strong>focus</strong> <em>тегИлиИд</em></dt>
<dd><p>Устанавливает фокус клавиатуры для примитива канвы на
элементе, заданном аргументом <em>тегИлиИд</em>. Если под
описание подходят несколько элементов, то фокус
устанавливается на тот из них, который идет первым в списке
вывода из элементов, поддерживающих курсор ввода. Если под
описание не подходит ни один из элементов или если ни один
из подходящих элементов не поддерживает курсор ввода, то
фокусировка не меняется. Если <em>тегИлиИд</em> представляет
собой пустую строку, то ни один из элементов не оказывается
в фокусе. Если аргумент <em>тегИлиИд</em> не задан, то
команда возвращает идентификатор элемента, находящегося в
фокусе или пустую строку, если такого элемента нет.</p>
<p>После установки фокуса на элемент в этом элементе будет
отображаться курсор ввода и все клавиатурные события будут
направлены на этот элемент. Элемент фокусировки канвы и окно
фокусировки на экране (установленное командой focus)
совершенно независимы: элемент находится в фокусе ввода
только если (а) его канва является окном фокусировки и (б)
сам элемент является элементом фокусировки канвы. В
большинстве случаев полезно вслед за командой <a
href="#focus"><strong>focus</strong></a> примитива выполнять
команду <a href="#focus"><strong>focus</strong></a>, чтобы
установить фокус на канве (если такая установка еще не была
произведена). </p>
2015-10-19 13:27:31 +03:00
</dd>
<dt><em>имяПути</em> <strong>gettags</strong> <em>тегИлиИд</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Возвращает список, элементами которого служат теги,
ассоциированные с элементом, подходящим под описание
<em>тегИлиИд</em>. Если под это описание подходят несколько
элементов, то список относится к тому из них, который идет
первым в списке вывода. Если элементов, подходящих под
описание нет или если у подходящего элемента нет тегов, то
команда возвращает пустую строку.</dd>
2015-10-19 13:27:31 +03:00
<dt><em>имяПути</em> <strong>icursor</strong> <em>тегИлиИд
индекс</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Устанавливает курсор ввода для элемента (элементов),
подходящего под описание <em>тегИлиИд</em>, в положение,
непосредственно предшествующее символу, заданному аргументом
<em>индекс</em>. Если некоторые (быть может, все) подходящие
элементы не поддерживают курсор ввода, то над ними никаких
действий не производится. Допустимые формы аргумента
<em>индекс</em> описаны выше (см. &quot;<a href=
"#ИНДЕКСЫ">Индексы</a>&quot;). Замечание: фактическое
высвечивание курсора ввода в элементе производится только,
если этот элемент находится в фокусе (см. описание команды
примитива <a href="#focus"><strong>focus</strong></a>), однако
положение курсора можно установить и в элементе вне
фокуса. Команда возвращает пустую строку.</dd>
<dt><em>имяПути</em> <strong>insert</strong> <em>тегИлиИд
передЭтим строка</em></dt>
<dd>Вставляет <em>строку</em> перед символом, заданным
аргументом <em>передЭтим</em>, в каждом из элементов,
подходящих под описание <em>тегИлиИд</em> и поддерживающих
курсор ввода. Возможные формы аргумента <em>передЭтим</em>
описаны выше (см. <a
href="#ИНДЕКСЫ"><strong>Индексы</strong></a>). Команда
возвращает пустую строку.</dd>
<dt><em>имяПути</em> <strong>itemcget</strong> <em>тегИлиИд
параметр</em></dt>
<dd>Возвращает текущее значение параметра конфигурации с именем
<em>параметр</em> для элемента <em>тегИлиИд</em>. Команда
аналогична команде примитива cget, за исключением того, что
она относится к отдельному элементу, а не к примитиву в
целом. Значение параметра может быть любым, допустимым для
команды примитива create, используемой для создания
элемента. Если тег <em>тегИлиИд</em> описывает несколько
элементов, то команда применяется к первому из них.</dd>
<dt><em>имяПути</em> <strong>itemconfigure</strong> <em>тегИлиИд
параметр значение параметр значение ...</em></dt>
<dd>Команда аналогична команде примитива
<strong>configure</strong> за исключением того, что она
изменяет значения параметров элементов, а не всего примитива
канвы. Если аргумент <em>параметр</em> не задан, то команда
возвращает список значений параметров для первого элемента,
подходящего под описание <em>тегИлиИд</em> (формат списка
описан в <strong>Tk_ConfigureInfo</strong>). Если аргумент
<em>параметр</em> задан, а аргумент <em>значение</em>
отсутствует, то команда возвращает список значений только
указанного параметра (этот список является подсписком списка,
возвращаемого в отсутствие аргумента <em>параметр</em>). Если
задано несколько пар <em>параметр-значение</em>, то команда
устанавливает новые значения указанных параметров для каждого
из элементов <em>тегИлиИд</em>; в этом случае команда
возвращает пустую строку. Допустимые формы <em>параметров</em>
и <em>значений</em> такие же, как в команде примитива
<strong>create</strong>, которая создает элементы. Допустимые
параметры и возможные их значения описаны ниже (см. описание
отдельных типов элементов).</dd>
<dt><a name="lower"></a><em>имяПути</em> <strong>lower</strong>
<em>тегИлиИд нижеЭтого</em></dt>
<dd>Передвигает все элементы, подходящие под описание
<em>тегИлиИд</em>, в списке вывода непосредственно перед
элементом, заданным аргументом <em>нижеЭтого</em>. Если под
описание подходят несколько элементов, то они передвигаются
все, причем их относительный порядок сохраняется. Аргумент
<em>нижеЭтого</em> представляет собой тег или идентификатор;
если он описывает несколько элементов, то для размещения
<em>тегИлиИд</em> используется первый из них. Замечание: на
элементы окон эта команда влияния не оказывает. Элементы окон
перекрывают элементы других типов и на порядок их расположения
влияют команды <a href="#raise"><strong>raise</strong></a>
и <a href= "#lower"><strong>lower</strong></a>, а не
команды <strong>raise</strong> и <strong>lower</strong>
примитивов канвы. Команда возвращает пустую строку.</dd>
<!-- ссылки разобрать где какие ^^^-->
2015-10-19 13:27:31 +03:00
<dt><em>имяПути</em> <strong>move</strong> <em>тегИлиИд
xКоличество yКоличество</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Сдвигает каждый из элементов, подходящих под описание
<em>тегИлиИд</em>, прибавляя к координатам каждой точки
элемента координаты <em>xКоличество</em> и
<em>yКоличество</em>. Команда возвращает пустую строку.
2015-10-19 13:27:31 +03:00
</dd>
<dt><em>имяПути</em> <strong>postscript</strong> <em>параметр
значение параметр значение ...</em></dt>
<dd><p>Генерирует Postscript-представление для каждой канвы или для
некоторых из них. Если <em>параметр</em> имеет вид
<strong>-file</strong>, то Postscript-представление
записывается в указанный файл, а команда возвращает пустую
строку; в противном случае возвращается сгенерированное
Postscript-представление. Если интерпретатор, владеющий
канвой, помечен как безопасный, то операция закончится
неудачно, так как безопасным интерпретаторам не разрешается
записывать файлы. Если задан параметр
<strong>-channel</strong>, то аргументом является имя канала,
открытого на вывод. Postscript-представление записывает в этот
канал; по окончании выполнения команды канал остается открытым
для последующих операций вывода. Postscript-представление
создается в форме Encapsulated Postscript в соответствии с
соглашением Documentation Structuring Conventions,
v. 3.0. Замечание: по умолчанию Postscript-представление
создается только для информации, выводимой в окно канвы на
экране. Только что созданная канва имеет размер 1x1 пиксель,
поэтому в Postscript ничего выведено не будет. Чтобы
преодолеть эту трудность, необходимо либо выполнить команду
update и дождаться пока окно достигнет своего нормального
размера, либо задать размеры канвы для печати параметрами
<strong>-width</strong> и <strong>-height</strong>. Пары
аргументов <em>параметр-значения</em> используются для
дополнительного управления характеристиками печати. Команда
поддерживает следующие параметры:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>-colormap</strong> <em>имяПеременной</em></dt>
<dd><em>ИмяПеременной</em> должно быть именем массива,
описывающего палитру в Postscript. Значение каждого
элемента этого массива должно кодировать установку в
Postscript определенного цвета, например, <strong>1.0 1.0
0.0 setrgbcolor</strong>.. При выводе информации о цвете
в Postscript Tk проверяет, есть ли в массиве
<em>имяПеременной элемент</em> с таким же именем цвета.
Если это так, то Tk использует значение этого элемента как
команду Postscript для установки цвета. Если параметр
<strong>-colormap</strong> не указан или если данному
цвету не соответствует никакой элемент массива, то Tk
берет интенсивность красного, голубого или зеленого X
цвета.</dd>
<dt><strong>-colormode</strong> <em>режим</em></dt>
<dd>Задает способ вывода цветовой информации.
<em>Режим</em> может принимать значения
<strong>color</strong> (для полноцветного вывода),
<strong>gray</strong> (преобразует все цвета к их серому
аналогу), <strong>mono</strong> (переводит каждый цвет в
черный или белый).</dd>
<dt><strong>-file</strong> <em>имяФайла</em></dt>
<dd>Задает имя файла вывода. Если этот параметр не указан,
то команда возвращает результирующее
Postscript-представление вместо записи его в файл.</dd>
<dt><strong>-fontmap</strong> <em>имяПеременной</em></dt>
<dd><em>ИмяПеременной</em> должно быть именем массива,
описывающего преобразование шрифтов. Каждый элемент
массива должен представлять собой Tcl список из двух
элементов имени и размера шрифта. При выводе Postscript
команд для конкретного шрифта Tk проверяет, описан ли в
массиве имяПеременной элемент с соответствующим
именем. Если такой элемент есть, то в Postscript
используется информация, содержащаяся в нем. В противном
случае Tk пытается догадаться о том, какой шрифт
использовать. Обычно эти попытки удаются только для
стандартных шрифтов, таких как Times, Helvetica и Courier,
и только в случае, если в имени X шрифта не пропущено ни
одного дефиса перед размером. Так, например, имя
2015-10-19 13:27:31 +03:00
-*_-<strong>Courier-Bold-R-Normal--*_-120</strong>-*_
будет воспринято нормально, а
*<strong>Courier-Bold-R-Normal*120</strong>* нет; дефисы
нужны Tk для распознавания имени шрифта.</dd>
<dt><strong>-height</strong> <em>размер</em></dt>
<dd>Задает высоту печатаемого поля канвы. По умолчанию имеет
значение высоты окна канвы.</dd>
<dt><strong>-pageanchor</strong> <em>якорь</em></dt>
<dd>Указывает, какая из выводимых точек канвы должна попасть
в опорную точку страницы печати (заданную параметрами
<strong>-pagex</strong> и
<strong>-pagey</strong>). Например, задание
<strong>-pageanchor n</strong> означает, что при печати
верхняя центральная точка окна канвы располагается в
опорной точке страницы. По умолчанию параметр имеет
значение <strong>center.</strong></dd>
<dt><strong>-pageheight</strong> <em>размер</em></dt>
<dd>Указывает на необходимость растяжения страницы печати в
горизонтальном и вертикальном направлении так, чтобы
напечатанная в Postscript страница имела высоту
<em>размер</em>. Значением параметра должно быть число
с плавающей точкой, за которым следует символ
<strong>c</strong>, если размер указан в сантиметрах,
<strong>i</strong> в дюймах, <strong>m</strong> в
миллиметрах, <strong>p</strong> или ничего в точках
принтерах (1/72 часть дюйма). По умолчанию имеет
значение высоты выводимой области экрана. Если заданы
оба параметра <strong>-pageheight</strong> и
<strong>-pagewidth</strong>, то для растяжения
используется значение параметра
<strong>-pagewidth</strong> (возможность неравномерного
растяжения в двух направлениях не предусмотрена).</dd>
<dt><strong>-pagewidth</strong> <em>размер</em></dt>
<dd>Указывает на необходимость растяжения страницы печати в
горизонтальном и вертикальном направлении так, чтобы
напечатанная в Postscript страница имела ширину
<em>размер</em>. Параметр может принимать такие же
значения, что и параметр <strong>-pageheight</strong>. По
умолчанию имеет значение ширины выводимой области
экрана. Если заданы оба параметра
<strong>-pageheight</strong> и
<strong>-pagewidth</strong>, то для растяжения
используется значение параметра
<strong>-pagewidth</strong> (возможность неравномерного
растяжения в двух направлениях не предусмотрена).</dd>
<dt><strong>-pagex</strong> <em>координата</em></dt>
<dd>Указывает <em>x</em>-координату опорной точки
Postscript-страницы в любом виде, приемлемом для
<strong>-pageheight</strong>. В сочетании с параметрами
<strong>-pagey</strong> и <strong>-pageanchor</strong>
позволяет задать размещение выводимой области на
Postscript-странице. По умолчанию задает координату центра
страницы.</dd>
<dt><strong>-pagey</strong> <em>координата</em></dt>
<dd>Указывает <em>y</em>-координату опорной точки
Postscript-страницы в любом виде, приемлемом для
<strong>-pageheight</strong>. В сочетании с параметрами
<strong>-pagex</strong> и <strong>-pageanchor</strong>
позволяет задать размещение выводимой области на
Postscript-странице. По умолчанию задает координату центра
страницы.</dd>
<dt><strong>-rotate</strong> <em>булевское</em></dt>
<dd>Булевское значение указывает, следует ли при печати
повернуть страницу на 90 градусов. При обычном выводе ось
x идет вдоль короткой стороны страницы (ориентация
&quot;портрет&quot;); после поворота она идет вдоль
длинной стороны (ориентация &quot;пейзаж&quot;). По
умолчанию страница печатается без поворота.</dd>
<dt><strong>-width</strong> <em>размер</em></dt>
<dd>Задает ширину печатаемого поля канвы. По умолчанию имеет
значение ширины окна канвы.</dd>
<dt><strong>-x</strong> <em>координата</em></dt>
<dd>Задает <em>x</em>-координату левого края печатаемой
области канвы (в координатах канвы, а не окна). По
умолчанию совпадает с координатой левого края окна.</dd>
<dt><strong>-y</strong> <em>координата</em></dt>
<dd>Задает <em>y</em>-координату верхнего края печатаемой
области канвы (в координатах канвы, а не окна). По
умолчанию совпадает с координатой верхнего края окна.</dd>
2015-10-19 13:27:31 +03:00
</dl>
<dt><a name="raise"></a><em>имяПути</em> <strong>raise</strong>
<em>тегИлиИд вышеЭтого</em></dt>
<dd>Передвигает все элементы, подходящие под описание
<em>тегИлиИд</em>, в списке вывода непосредственно за элемент,
заданный аргументом <em>вышеЭтого</em>. Если под описание
подходят несколько элементов, то они передвигаются все, причем
их относительный порядок сохраняется. Аргумент
<em>вышеЭтого</em> представляет собой тег или идентификатор;
если он описывает несколько элементов, то для размещения
<em>тегИлиИд</em> используется последний (самый верхний) из
них. Замечание: на элементы окон эта команда влияния не
оказывает. Элементы окон перекрывают элементы других типов и
на порядок их расположения влияют команды raise и lower, а не
команды raise и lower примитивов канвы. Команда возвращает
пустую строку.</dd>
<dt><em>имяПути</em> <strong>scale</strong> <em>тегИлиИд xЦентр
ентр xКоэффициент yКоэффициент</em></dt>
<dd>Растягивает или сжимает все элементы, подходящие под
описание <em>тегИлиИд</em> в координатном пространстве канвы.
Аргументы <em>ентр</em> и <em>ентр</em> задают координаты
центра преобразования, а <em>xКоэффициент</em> и
<em>yКоэффициент</em> коэффициенты растяжения по осям
<em>x</em> и <em>y</em> соответственно (значение
1.0 указывает на отсутствие растяжения). Расстояние по оси
<em>x</em> каждой точки, задающей положение элемента, от
центра растяжения увеличивается в <em>xКоэффициент</em>
раз. Аналогично, расстояние по оси <em>y</em> каждой точки,
задающей положение элемента, от центра растяжения
увеличивается в <em>yКоэффициент</em> раз. Команда возвращает
пустую строку.</dd>
<dt><em>имяПути</em> <strong>scan</strong> <em>параметр
аргументы</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Используется для сканирования канвы. Имеет две формы в
зависимости от значения параметра:</dd>
<dt><em>имяПути</em> <strong>scanmark</strong> <em>x y</em></dt>
<dd>Сохраняет <em>x, y</em> и текущий вид канвы для последующего
использования командами <strong>scan dragto</strong>. Обычно
эта команда используется в сочетании с нажатием клавиши
&quot;Мыши&quot; в примитиве, а <em>x</em> и <em>y</em>
являются координатами курсора &quot;Мыши&quot;. Возвращает
пустую строку.</dd>
<dt><em>имяПути</em> <strong>scan dragto</strong> <em>x y</em></dt>
<dd>Вычисляет разность между значениями координат <em>x</em> и
<em>y</em> и значениями тех же координат, сохраненными
последней командой <strong>scan mark</strong> на данном
примитиве. Затем переносит изображение примитива на
расстояние, в 10 раз превышающее вычисленную разность. Команда
обычно связана с событиями движения &quot;Мыши&quot; в примитиве и
используется для скоростного перетаскивания канвы в его
окне. Возвращает пустую строку.</dd>
<dt><em>имяПути</em> <strong>select</strong> <em>параметр
тегИлиИд аргумент</em></dt>
<dd>Производит действия над выделенными элементами тем или иным
способом в зависимости от значения параметра. Команда может
иметь одну из описанных ниже форм. В каждой из приведенных
форм <em>тегИлиИд</em> должен описывать элемент, допускающий
индексирование и выделение; если под описание подходит
несколько элементов, то используется первый из них,
допускающий индексирование и выделение. <em>Индекс</em>
представляет собой текстовое указание позиции в
<em>тегИлиИд</em> (см. описание в &quot;<a href=
"#ИНДЕКСЫ">Индексы</a>&quot;).</dd>
<dt><em>имяПути</em> <strong>select adjust</strong> <em>тегИлиИд
индекс</em></dt>
<dd>Определяет ближайший к указанному аргументом <em>индекс</em>
положению край набора выделенных элементов в <em>тегИлиИд</em>
и устанавливает новое значение этого края в <em>индекс</em>
(т.е. элемент <em>индекс</em> входит в выделение, а соседний с
ним нет). Противоположный край выделения становится опорной
точкой для последующих команд <strong>select to</strong>. Если
в текущий момент в <em>тегИлиИд</em> выделения отсутствуют, то
команда ведет себя точно так же, как команда примитива
<strong>select to</strong>. Возвращает пустую строку.</dd>
<dt><em>имяПути</em> <strong>select clear</strong></dt>
<dd>Очищает выделенные элементы в данном примитиве. Если таких
элементов нет, то не производит никаких действий. Возвращает
пустую строку.</dd>
<dt><em>имяПути</em> <strong>select from</strong> <em>тегИлиИд
индекс</em></dt>
<dd>Устанавливает опорную точку выделения непосредственно перед
символом, заданным аргументом <em>индекс</em>. Текущего
выделения команда не меняет. Она лишь фиксирует начало
выделения для последующих команд <strong>select
to</strong>. Возвращает пустую строку.</dd>
<dt><em>имяПути</em> <strong>select item</strong></dt>
<dd>Возвращает идентификатор выделенного элемента, если
выделение представляет собой элемент канвы. Если в данной
канве выделение отсутствует, то команда возвращает пустую
строку.</dd>
<dt><em>имяПути</em> <strong>select to</strong> <em>тегИлиИд
индекс</em></dt>
<dd>Выделяет все символы между опорным символом выделения и
символом, указанным аргументом <em>индекс</em>, включая этот
символ. Опорный символ включается в выделение, только если
значение аргумента <em>индекс</em> больше номера опорного
символа. Опорный символ устанавливается последней выполненной
на данном примитиве командой <strong>select adjust</strong>
или <strong>select from</strong>. Если опорный символ
выделения в примитиве не входит в элемент, описываемый
аргументом <em>тегИлиИд</em>, то опорная точка устанавливается
на символ, указанный аргументом индекс. Команда возвращает
пустую строку.</dd>
<dt><em>имяПути</em> <strong>type</strong> <em>тегИлиИд</em></dt>
<dd>Возвращает тип элемента, описываемого аргументом
<em>тегИлиИд</em> (например, <strong>rectangle</strong> или
<strong>text</strong>). Если <em>тегИлиИд</em> описывает
несколько элементов, то возвращается тип первого из них. Если
ни один элемент не подходит под описание <em>тегИлиИд</em>,
то команда возвращает пустую строку.</dd>
<dt><em>имяПути</em> <strong>xview</strong>
<em>аргументы</em></dt>
<dd><p>Используется для запроса горизонтального положения
информации, выведенной в окне канвы, и изменения этого
положения. Команда может иметь одну из следующих форм:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>xview</strong></dt>
<dd>Возвращает список, состоящий из двух элементов. Каждый
из элементов списка представляет собой вещественное число,
заключенное между нулем и единицей; эта пара чисел
описывает видимый в окне горизонтальный интервал. Так,
например, если первое число равно .2, а второе .6, то
20% области канвы оказывается невидимой слева от окна, в
окне выводится 40% информации, и еще 40% оказывается
невидимой справа от окна.</dd>
<dt><em>имяПути</em> <strong>xview moveto</strong>
<em>число</em></dt>
<dd>Передвигает область видимости так, что слева от
окна остается невидимой часть канвы, указанная аргументом
<em>число</em>. Число должно быть заключено между 0 и 1
2015-10-19 13:27:31 +03:00
</dd>
<dt><em>имяПути</em> <strong>xview scroll</strong>
<em>количество что</em></dt>
<dd>Сдвигает выводимый в окне текст вправо или влево,
выравнивая его границу в соответствии со значениями
аргументов. <em>Количество</em> должно быть целым числом,
аргумент <em>что</em> может принимать значения
<strong>units</strong> или <strong>pages</strong> или быть
сокращением одного из этих слов. Если аргумент
<em>что</em> принимает значение <strong>units</strong>, то
выравнивание происходит относительно единиц, указанных
значением параметра <strong>xScrollIncrement</strong>
(если это значение положительно), или относительно десятой
части ширины окна (в противном случае). Если значением
аргумента <em>что</em> является <strong>pages</strong>, то
единицей выравнивания служит величина в девять десятых
ширины окна. Если <em>количество</em> отрицательно, то
видимая информация сдвигается вправо, в противном случае
влево.</dd>
2015-10-19 13:27:31 +03:00
</dl>
</dd>
<dt><em>имяПути</em> <strong>yview</strong>
<em>аргументы</em></dt>
2015-10-19 13:27:31 +03:00
<dd><p>Используется для запроса вертикального положения
информации, выведенной в окне канвы, и изменения этого положения.
Команда может иметь одну из следующих форм:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>yview</strong></dt>
<dd>Возвращает список, состоящий из двух элементов. Каждый
из элементов списка представляет собой вещественное число,
заключенное между нулем и единицей; эта пара чисел
описывает видимый в окне вертикальный интервал. Так,
например, если первое число равно .6., а второе 1.0, то в
окне выводятся нижние 40% области канвы (заданной
значением параметра <strong>-scrollregion</strong>). Эти
значения совпадают со значениями, передаваемыми полосам
прокрутки через параметр <strong>-yscrollcommand</strong>.
2015-10-19 13:27:31 +03:00
</dd>
<dt><em>имяПути</em> <strong>yview moveto</strong>
<em>число</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Передвигает область видимости так, что сверху от окна
остается невидимой часть канвы, указанная аргументом
<em>число</em>. Число должно быть заключено между 0 и
2015-10-19 13:27:31 +03:00
1.</dd>
<dt><em>имяПути</em> <strong>yview scroll</strong>
<em>количество что</em></dt>
<dd>Сдвигает выводимый в окне текст вверх или вниз,
выравнивая его границу в соответствии со значениями
аргументов. <em>Количество</em> должно быть целым числом,
аргумент <em>что</em> может принимать значения
<strong>units</strong> или <strong>pages</strong> или быть
сокращением одного из этих слов. Если аргумент
<em>что</em> принимает значение <strong>units</strong>, то
выравнивание происходит относительно единиц, указанных
значением параметра <strong>yScrollIncrement</strong>
(если это значение положительно), или относительно десятой
части высоты окна (в противном случае). Если значением
аргумента <em>что</em> является <strong>pages</strong>, то
единицей выравнивания служит величина в девять десятых
высоты окна. Если <em>количество</em> отрицательно, то
видимая информация сдвигается вниз, в противном случае
вверх.
2015-10-19 13:27:31 +03:00
</dd>
</dl>
</dd>
</dl>
<h2><a name="ОБЗОР_ТИПОВ_ЭЛЕМЕНТОВ"></a>ОБЗОР ТИПОВ ЭЛЕМЕНТОВ</h2>
<p> Ниже описываются различные типы элементов, поддерживаемые
примитивами канвы. Каждый тип характеризуется, во-первых, формой
команды <strong>create</strong>, посредством которой создаются
элементы этого типа, и, во-вторых, набором параметров
конфигурации элементов этого типа, которые можно использовать в
командах примитива <strong>create</strong> и
<strong>itemconfigure</strong>. Большинство типов не
поддерживают выделение и индексирование и связанные с этими
операциями команды, такие как <strong>index</strong> или
<strong>insert</strong>. Для типов, поддерживающих указанные
возможности, они описаны явно (пока речь идет только о текстовых
элементах).</p>
<h3>ДУГИ</h3>
<p> Элементы типа <strong>arc</strong> выводятся на экран в виде
отрезка дуги. Дуга представляет собой отрезок овала,
заключенный между двумя радиусами (заданными параметрами
<strong>-start</strong> и <strong>-extent</strong>); она
изображается на экране в одном из нескольких возможных видов в
зависимости от значения параметра <strong>-style</strong>. Дуги
создаются командами примитива.</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>create</strong> <em>arc x1 y1 x2 y2
параметр значение параметр значение ...</em></dt>
<dd><p>Аргументы <em>x1 y1 x2 y2</em> задают координаты
противоположных углов прямоугольной области, в которую вписан
овал. За координатами следует несколько пар
<em>параметр-значение</em>, каждая из которых устанавливает
значение одного из параметров конфигурации элемента. Такие же
пары <em>параметр-значение</em> используются командами
примитива <strong>itemconfigure</strong> для изменения
параметров конфигурации. Команда поддерживает следующие
параметры:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>-extent</strong> <em>угол</em></dt>
<dd>Задает величину сектора, содержащего дугу. Дуга
простирается на <em>угол</em>, отсчитываемый от начальной
точки дуги, заданной параметром
<strong>-start</strong>. Угол может быть и
отрицательным. Если его величина превосходит 360 градусов
или оказывается меньше -360 градусов, то берется его
значение по модулю 360.</dd>
<dt><strong>-fill</strong> <em>цвет</em></dt>
<dd>Закрашивает <em>цвет</em>ом область, ограниченную
дугой. Аргумент <em>цвет</em> может принимать любое
значение, воспринимаемое командой
<strong>Tk_GetColor</strong>. Если значением
<em>цвет</em>а является пустая строка, то закрашивания не
происходит. Пустая строка также принимается значением
параметра по умолчанию.</dd>
<dt><strong>-outline</strong> <em>цвет</em></dt>
<dd>Цвет задает цвет контура дуги. Этот параметр может
принимать любое значение, воспринимаемое командой
<strong>Tk_GetColor</strong>. По умолчанию параметр имеет
значение <strong>black</strong>. Если в качестве параметра
задана пустая строка, то контур дуги не изображается.</dd>
<dt><strong>-outlinestipple</strong> <em>двуцвет</em></dt>
<dd>Указывает, что контур дуги должен изображаться в
соответствии с образцом пунктира. Аргумент
<em>двуцвет</em> указывает этот образец, он может
принимать любое значение, воспринимаемое командой
Tk_GetBitmap. Если параметр <strong>-outline</strong> не
задан, то задание параметра
<strong>-outlinestipple</strong> не влияет на вывод. Если
значением данного параметра является пустая строка, то
дуга будет рисоваться сплошной линией.</dd>
<dt><strong>-start</strong> <em>угол</em></dt>
<dd>Задает положение начала сектора, содержащего
дугу. <em>Угол</em> задается в градусах и отсчитывается
против часовой стрелки от 3-часового положения часовой
стрелки. Он может быть как положительным, так и
отрицательным.</dd>
<dt><strong>-stipple</strong> <em>двуцвет</em></dt>
<dd>Указывает необходимость закрашивания области дуги в
соответствии с образцом пунктира. Допустимы любые
значения, воспринимаемые командой
<strong>Tk_GetBitmap</strong>. Если параметр
<strong>-fill</strong> не задан, то параметр
<strong>-stipple</strong> не оказывает влияния на
вывод. Если значением параметра -<strong>stipple</strong>
является пустая строка, то выполняется сплошное
закрашивание.</dd>
<dt><strong>-style</strong> <em>тип</em></dt>
<dd>Задает тип изображения дуги. Если <em>тип</em> имеет
значение <strong>pieslice</strong> (по умолчанию), то
область дуги имеет вид сектора, ограниченного дугой и
двумя радиусами, проведенными из центра овала к ее
концам. Тип <strong>chord</strong> указывает на то, что
область имеет вид сегмента, ограниченного дугой и
отрезком, соединяющим ее концы. Тип <strong>arc</strong>
означает, что область дуги состоит из самой этой дуги. В
последнем случае параметр <strong>-fill</strong>
игнорируется.</dd>
<dt><strong>-tags</strong> <em>списокТегов</em></dt>
<dd>Задает набор тегов, относящихся к элементу.
<em>СписокТегов</em> представляет собой список имен тегов,
замещающий имеющиеся теги элемента. <em>СписокТегов</em>
может быть пустым.</dd>
<dt><strong>-width</strong> <em>ширинаКонтура</em></dt>
<dd>Задает ширину контура вокруг области дуги; значением
параметра может быть любое допустимое значение координат,
описанное выше (см. &quot;<a href=
"#КООРДИНАТЫ">Координаты</a>&quot;). Если значением
параметра <strong>-outline</strong> является пустая
строка, то параметр <strong>-width</strong> не влияет на
характер вывода. Широкий контур центрируется на отрезках,
ограничивающих область дуги. По умолчанию параметр имеет
значение 1.0 .</dd>
2015-10-19 13:27:31 +03:00
</dl>
</dd>
</dl>
<h3>ДВУЦВЕТНЫЕ ЭЛЕМЕНТЫ</h3>
2015-10-19 13:27:31 +03:00
<p> Элементы типа <strong>bitmap</strong> изображаются на экране с
помощью двух цветов: цвета фона и цвета переднего плана,
Двуцветные изображения создаются командой примитива</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>create bitmap</strong> <em>x y
параметр значение параметр значение ...</em></dt>
<dd><p>Аргументы <em>x</em> и <em>y</em> задают координаты опорной
точки двуцветного изображения на экране (подробнее процедура
размещения изображения описана ниже при описании параметра
<strong>-anchor</strong>). За координатами следует несколько
пар <em>параметр-значение</em>, каждая из которых
устанавливает значение одного из параметров конфигурации
элемента. Такие же пары <em>параметр-значение</em>
используются для изменения значений параметров с помощью
команды примитива <strong>itemconfigure</strong>. Для
двуцветных изображений допустимы следующие параметры:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>-anchor</strong> <em>положениеОпоры</em></dt>
<dd><em>ПоложениеОпоры</em> указывает способ размещения
изображения по отношению к его опорной точке. Параметр
может принимать произвольное значение, воспринимаемое
командой <strong>Tk_GetAnchor</strong>. Так, если параметр
имеет значение <strong>center</strong>, то в опорной точке
располагается центр изображения; значение
<strong>n</strong> указывает, что в опорной точке
располагается верхняя центральная точка изображения и
т.д. По умолчанию параметр имеет значение
2015-10-19 13:27:31 +03:00
<strong>center</strong>.</dd>
<dt><strong>-background</strong> <em>цвет</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Задает цвет, используемый для отображения пикселей
двуцветного изображения со значением 0. Параметр может
принимать любое значение, воспринимаемое командой
<strong>Tk_GetColor</strong>. Если параметр не задан или
<em>цвет</em> является пустой строкой, то пиксели со
значением 0 не выводятся, что создает эффект
прозрачности.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>-bitmap</strong> <em>двуцвет</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Задает двуцветное изображение для вывода в
элементе. Параметр может принимать любое значение,
воспринимаемое командой
2015-10-19 13:27:31 +03:00
<strong>Tk_GetBitmap.</strong></dd>
<dt><strong>-foreground</strong> <em>цвет</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Задает цвет пикселей двуцветного изображения, имеющих
значение .1.. Параметр может принимать любое значение,
воспринимаемое командой <strong>Tk_GetColor</strong>; по
умолчанию его значение <strong>black</strong>.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>-tags</strong> <em>списокТегов</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Приписывает элементу список тегов.
<em>СписокТегов</em> представляет собой список имен тегов,
замещающий имеющиеся теги элемента. <em>СписокТегов</em> может быть
пустым.
2015-10-19 13:27:31 +03:00
</dd>
</dl>
</dd>
</dl>
<h3>ЛИНИИ</h3>
2015-10-19 13:27:31 +03:00
<p>Элементы типа <strong>line</strong> выводятся на экран в виде
прямо- или криволинейной ломаной. Линии создаются командой
примитива</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>create line</strong> <em>x1 y1
... xn yn параметр значение параметр значение ...</em></dt>
<dd><p>Аргументы от <em>x1</em> до <em>yn</em> задают координаты
последовательности из двух или более точек, соединенных
отрезками. За координатами может следовать произвольный набор
пар <em>параметр-значение</em>, каждая из которых
устанавливает значение одного из параметров элемента. С
помощью тех же пар <em>параметр-значения</em> можно задать
новые значения параметров командами примитива
<strong>itemconfigure</strong>. Команда поддерживает
следующие параметры:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>-arrow</strong> <em>где</em></dt>
<dd>Указывает, следует ли изображать стрелки на одном или
обоих концах линии. Значение <em>где</em> может быть одним
из следующих: <strong>none</strong> (стрелки не
изображаются), <strong>first</strong> (изображается
стрелка в начале линии), <strong>last</strong>
(изображается стрелка в конце линии) или
<strong>both</strong> (стрелка изображается на обоих
концах).</dd>
<dt><strong>-arrowshape</strong> <em>форма</em></dt>
<dd>Описывает форму стрелки. Значением параметра должен быть
список, содержащий три элемента, каждый из которых
представляет собой расстояние в виде, описанном выше
(см. &quot;<a href="#КООРДИНАТЫ">Координаты</a>&quot;).
Первый элемент списка задает расстояние вдоль линии от
начала до острия стрелки. Второй элемент задает
расстояние вдоль линии от хвостовых концов стрелки до ее
острия, третий расстояние от внешнего ребра линии до
хвостовых точек. Если параметр не задан, то Tk
самостоятельно выбирает &quot;разумную&quot; форму
стрелки.</dd>
<dt><strong>-capstyle</strong> <em>стиль</em></dt>
<dd>Описывает способ изображения концов линии в отсутствие
стрелок. Параметр может принимать любое значение,
воспринимаемое командой <strong>Tk_GetCapstyle</strong>
(<strong>butt</strong>, <strong>projecting</strong> или
<strong>round</strong>). По умолчанию имеет значение
<strong>butt</strong>. При наличии стрелок параметр
игнорируется.</dd>
<dt><strong>-fill</strong> <em>цвет</em></dt>
<dd>Задет цвет изображаемой линии. Параметр может принимать
любое значение, воспринимаемое командой
<strong>Tk_GetColor</strong>. Если значением параметра
является пустая строка, то линия будет прозрачной. По
умолчанию цвет имеет значение <strong>black</strong>.</dd>
<dt><strong>-joinstyle</strong> <em>стиль</em></dt>
<dd>Задает способ соединения отрезков линии в
вершинах. Параметр может принимать любое значение,
воспринимаемое командой <strong>Tk_GetCapstyle</strong>
(<strong>bevel</strong>, <strong>miter</strong> или
<strong>round</strong>). По умолчанию имеет значение
<strong>miter</strong>. При наличии всего двух вершин
параметр игнорируется.</dd>
<dt><strong>-smooth</strong> <em>булевское</em></dt>
<dd>Параметр может принимать любое значение, воспринимаемое
командой <strong>Tk_GetBoolean</strong>. Указывает, нужно
ли сглаживать ломаную, превращая ее в кривую (в этом
случае линия изображается в виде набора параболических
сплайнов: для первого и второго отрезка, для второго и
третьего отрезка и т.д.). В кривую можно вставлять
прямолинейные отрезки, удваивая нужные вершины.</dd>
<dt><strong>-splinesteps</strong> <em>число</em></dt>
<dd>Задает желаемую степень гладкости кривой: каждый сплайн
будет аппроксимирован <em>число</em>м прямолинейных
отрезков. При опущенном параметре <strong>-spline</strong>
параметр <strong>-splinesteps</strong> игнорируется.</dd>
<dt><strong>-stipple</strong> <em>двуцвет</em></dt>
<dd>Указывает на необходимость пунктирного изображения
линии; <em>двуцвет</em> задает образец изображения в виде,
воспринимаемом командой
<strong>Tk_GetBitmap</strong>. Если значением параметра
является пустая строка (как, например, по умолчанию), то
линия изображается непрерывной кривой.</dd>
<dt><strong>-tags</strong> <em>списокТегов</em></dt>
<dd>Приписывает к элементу набор тегов.
<em>СписокТегов</em> представляет собой список имен тегов,
замещающих все имеющиеся теги элемента. Он может быть
пустым.</dd>
<dt><strong>-width</strong> <em>ширинаЛинии</em></dt>
<dd>Задает ширину линии в произвольном виде, описанном выше
(см. &quot;<a href="#КООРДИНАТЫ">Координаты</a>&quot;).
Центр широкой линии проходит через вершины. По умолчанию
параметр имеет значение 1.0.</dd>
2015-10-19 13:27:31 +03:00
</dl>
<dd>
</dl>
<h3>ОВАЛЫ</h3>
2015-10-19 13:27:31 +03:00
<p>Элементы типа <strong>oval</strong> появляются на экране в виде
овальных или круглых областей. Каждый овал может быть
закрашенным и иметь контур. Овалы создаются командой примитива</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>create oval</strong> <em>x1 y1 x2
y2 параметр значение параметр значение ...</em></dt>
<dd><p>Аргументы <em>x1</em>, <em>y1</em>, <em>x2</em> и
<em>y2</em> задают координаты двух диагонально противоположных
углов прямоугольника, заключающего овал. Овал включает в себя
верхнюю и левую стороны прямоугольника, но не его нижнюю и
правую сторону. Если прямоугольник представляет собой квадрат,
то овал будет кругом, в противном случае он вытянут в одном из
направлений. За координатами может следовать произвольный
набор пар <em>параметр-значение</em>, каждая пара
устанавливает значение одного из параметров. Такие же пары
используются командами примитива
<strong>itemconfigure</strong> для изменения конфигурации
элемента. Команда поддерживает следующие параметры:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>-fill</strong> <em>цвет</em></dt>
<dd>Закрашивает <em>цвет</em>ом область, ограниченную
овалом. Аргумент <em>цвет</em> может принимать любое
значение, воспринимаемое командой
<strong>Tk_GetColor</strong>. Если значением
<em>цвет</em>а является пустая строка, то закрашивания не
происходит. Пустая строка также принимается значением
параметра по умолчанию.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>-outline</strong> <em>цвет</em></dt>
<dd>Цвет задает цвет контура овала. Этот параметр может
принимать любое значение, воспринимаемое
командой<strong>Tk_GetColor</strong>. По умолчанию
параметр имеет значение <strong>black</strong>. Если в
качестве параметра задана пустая строка, то контур овала
не изображается.</dd>
<dt><strong>-stipple</strong> <em>двуцвет</em></dt>
<dd>Указывает на необходимость закрашивания внутренности
овала в соответствии с образцом пунктира. Допустимы любые
значения, воспринимаемые командой
<strong>Tk_GetBitmap</strong>. Если параметр
<strong>-fill</strong> не задан, то параметр
<strong>-stipple</strong> не оказывает влияния на
вывод. Если значением параметра <strong>-stipple</strong>
является пустая строка (по умолчанию), то выполняется
сплошное закрашивание.</dd>
<dt><strong>-tags</strong> <em>списокТегов</em></dt>
<dd>Задает набор тегов, относящихся к элементу.
<em>СписокТегов</em> представляет собой список имен тегов,
замещающий имеющиеся теги элемента. <em>СписокТегов</em>
может быть пустым.</dd>
<dt><strong>-width</strong> <em>ширинаКонтура</em></dt>
<dd>Задает ширину контура вокруг овала; значением параметра
может быть любое допустимое значение координат, описанное
выше (см. &quot;<a
href="#КООРДИНАТЫ">Координаты</a>&quot;). Если параметр
<strong>-outline</strong> не задан, то параметр
<strong>-width</strong> не влияет на характер
вывода. Широкий контур центрируется на овале, заданном
координатами <em>x1</em>, <em>y1</em>, <em>x2</em>,
<em>y2</em>. По умолчанию параметр имеет значение
2015-10-19 13:27:31 +03:00
1.0.</dd>
</dl>
</dd>
</dl>
<h3>МНОГОУГОЛЬНИКИ</h3>
2015-10-19 13:27:31 +03:00
<p>Элементы типа <strong>polygon</strong> выводятся на экран в
виде закрашенных многоугольных (возможно, криволинейных)
областей. Многоугольники задаются командами примитива</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>create polygon</strong> <em>x1 y1 ... xn yn
параметр значение параметр значение ...</em></dt>
<dd><p>Аргументы с <em>x1</em> до <em>yn</em> задают координаты не
менее чем трех точек, определяющих замкнутый
многоугольник. Первая и последняя точки могут совпадать; вне
зависимости от того, так это или нет, Tk изображает замкнутый
многоугольник. За координатами может следовать несколько пар
<em>параметр-значение</em>, каждая из которых устанавливает
один из параметров конфигурации элемента. Те же пары
<em>параметр-значение</em> могут быть использованы в команде
примитива <strong>itemconfigure</strong> для изменения
конфигурации элемента. Команда поддерживает следующие
параметры:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>-fill</strong> <em>цвет</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Задет цвет закраски многоугольника. Параметр может
принимать любое значение, воспринимаемое командой
<strong>Tk_GetColor</strong>. Если значением параметра
является пустая строка, то многоугольник будет
прозрачным. По умолчанию <em>цвет</em> имеет значение
2015-10-19 13:27:31 +03:00
<strong>black</strong>.</dd>
<dt><strong>-outline</strong> <em>цвет</em></dt>
2015-10-19 13:27:31 +03:00
<dd><em>Цвет</em> задает цвет контура многоугольника. Этот
параметр может принимать любое значение, воспринимаемое
командой <strong>Tk_GetColor</strong>. Если в качестве
значения параметра задана пустая строка (по умолчанию), то
контур овала не изображается.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>-smooth</strong> <em>булевское</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Параметр может принимать любое значение, воспринимаемое
командой <strong>Tk_GetBoolean</strong>. Указывает, нужно
ли сглаживать многоугольник, превращая его в кривую (в
этом случае кривая изображается в виде набора
параболических сплайнов: для первого и второго отрезка,
для второго и третьего отрезка и т.д.). В кривую можно
вставлять прямолинейные отрезки, удваивая нужные
вершины.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>-splinesteps</strong> <em>число</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Задает желаемую степень гладкости кривой: каждый сплайн
будет аппроксимирован <em>число</em>м прямолинейных
отрезков. При опущенном параметре <strong>-smooth</strong>
параметр <strong>-splinesteps</strong> игнорируется.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>-stipple</strong> <em>двуцвет</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Указывает на необходимость пунктирного закрашивания
многоугольника; <em>двуцвет</em> задает образец
изображения в виде, воспринимаемом командой
<strong>Tk_GetBitmap</strong>. Если значением параметра
является пустая строка (как, например, по умолчанию), то
осуществляется непрерывное закрашивание.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>-tags</strong> <em>списокТегов</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Приписывает к элементу набор тегов.
<em>СписокТегов</em> представляет собой список имен тегов,
замещающих все имеющиеся теги элемента. Он может быть
пустым.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>-width</strong> <em>ширинаКонтура</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Задает ширину контура вокруг многоугольника в
произвольном виде, описанном выше (см. &quot;<a href=
"#КООРДИНАТЫ">Координаты</a>&quot;). Если параметр
<strong>-outline</strong> не задан, то параметр
<strong>-width</strong> игнорируется. По умолчанию
параметр имеет значение 1.0.</dd>
2015-10-19 13:27:31 +03:00
</dl>
</dd>
</dl>
<p>Многоугольные элементы отличаются от других прямоугольников,
овалов и дуг в том отношении, что их внутренние точки считаются
находящимися &quot;внутри&quot; многоугольника (например, в
смысле команд примитива <strong>find closest</strong> и
<strong>find overlapping</strong>), даже если он и не
закрашен. Для большинства остальных типов элементов внутренние
точки считаются находящимися внутри элемента, только если
элемент закрашен или если он не закрашен и не имеет контура.
Если Вам нужен незакрашенный многоугольник, внутренние точки
которого не считаются находящимися внутри него, то пользуйтесь
вместо этого элементом <strong>line.</strong></p>
<h3>ПРЯМОУГОЛЬНИКИ</h3>
<p>Элементы типа <strong>rectangle</strong> появляются на экране в
виде прямоугольных областей. Каждый прямоугольник может быть
закрашенным и иметь контур. Прямоугольники создаются командой
примитива</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>create rectangle</strong> <em>x1 y1
x2 y2 параметр значение параметр значение ...</em></dt>
<dd><p>Аргументы <em>x1, y1, x2</em> и <em>y2</em> задают
координаты двух диагонально противоположных углов
прямоугольника (верхняя и левая стороны прямоугольника входят
в него, а нижняя и правая сторона нет). За координатами может
следовать произвольный набор пар <em>параметр-значение</em>,
каждая пара устанавливает значение одного из параметров. Такие
же пары используются командами примитива
<strong>itemconfigure</strong> для изменения конфигурации
элемента. Команда поддерживает следующие параметры:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>-fill</strong> <em>цвет</em></dt>
<dd>Закрашивает <em>цвет</em>ом прямоугольную область.
Аргумент <em>цвет</em> может принимать любое значение,
воспринимаемое командой <strong>Tk_GetColor</strong>. Если
значением <em>цвет</em>а является пустая строка, то
закрашивания не происходит. Пустая строка также
принимается значением параметра по умолчанию.</dd>
<dt><strong>-outline</strong> <em>цвет</em></dt>
<dd><em>Цвет</em> задает цвет контура прямоугольника. Этот
параметр может принимать любое значение, воспринимаемое
командой <strong>Tk_GetColor</strong>. По умолчанию
параметр имеет значение <strong>black</strong>. Если в
качестве параметра задана пустая строка, то контур
прямоугольника не изображается.</dd>
<dt><strong>-stipple</strong> <em>двуцвет</em></dt>
<dd>Указывает на необходимость закрашивания прямоугольника в
соответствии с образцом пунктира. Допустимы любые
значения, воспринимаемые командой
<strong>Tk_GetBitmap</strong>. Если параметр
<strong>-fill</strong> не задан, то параметр
<strong>-stipple</strong> не оказывает влияния на
вывод. Если значением параметра <strong>-stipple</strong>
является пустая строка (по умолчанию), то выполняется
сплошное закрашивание.</dd>
<dt><strong>-tags</strong> <em>списокТегов</em></dt>
<dd>Задает набор тегов, относящихся к элементу.
<em>СписокТегов</em> представляет собой список имен тегов,
замещающий имеющиеся теги элемента. <em>СписокТегов</em>
может быть пустым.</dd>
<dt><strong>-width</strong> <em>ширинаКонтура</em></dt>
<dd>Задает ширину контура вокруг прямоугольника; значением
параметра может быть любое допустимое значение координат,
описанное выше (см. &quot;<a
href="#КООРДИНАТЫ">"Координаты"</a>&quot;). Если параметр
<strong>-outline</strong> не задан, то параметр
<strong>-width</strong> не влияет на характер
вывода. Широкий контур центрируется на прямоугольнике,
заданном координатами <em>x1</em>, <em>y1</em>,
<em>x2</em>, <em>y2</em>. По умолчанию параметр имеет
значение 1.0.</dd>
2015-10-19 13:27:31 +03:00
</dl>
</dd>
</dl>
<h3>ТЕКСТОВЫЕ ЭЛЕМЕНТЫ</h3>
2015-10-19 13:27:31 +03:00
<p>Текстовый элемент предназначен для вывода на экран строки
символов в одну или несколько строчек. Текстовые элементы
поддерживают индексы и выделение, и на них могут быть выполнены
команды примитива канвы <strong>dchars</strong>,
2015-10-19 13:27:31 +03:00
<strong>focus</strong>, <strong>icursor</strong>,
<strong>index</strong>, <strong>insert</strong>,
<strong>select</strong>. Текстовые элементы создаются командой
примитива</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>create text</strong> <em>x y
параметр значение параметр значение ...</em></dt>
<dd><p><em>Аргументы x</em> и <em>y</em> задают координаты точки,
используемой для размещения текста на экране (подробнее
размещение текста описано ниже при описании параметров). За
координатами могут следовать несколько пар
<em>параметр-значение</em>, каждая из которых устанавливает
значение одного из параметров конфигурации элемента. Такие же
пары используются командами примитива
<strong>itemconfigure</strong> для изменения конфигурации
элемента. Команда поддерживает следующие параметры:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>-anchor</strong> <em>положениеОпоры</em></dt>
<dd><em>ПоложениеОпоры</em> указывает способ размещения
текста по отношению к его опорной точке. Параметр может
принимать произвольное значение, воспринимаемое командой
<strong>Tk_GetAnchor</strong>. Так, если параметр
имеет значение <strong>center</strong>, то в
опорной точке располагается центр текста; значение
<strong>n</strong> указывает что в опорной точке
располагается верхняя центральная точка текста и т.д. По
умолчанию параметр имеет значение
2015-10-19 13:27:31 +03:00
<strong>center</strong>.</dd>
<dt><strong>-fill</strong> <em>цвет</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Закрашивает <em>цвет</em>ом символы текста. Аргумент
<em>цвет</em> может принимать любое значение,
воспринимаемое командой
<strong>Tk_GetColor</strong>. Значением параметра по
умолчанию является <strong>black</strong>.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>-font</strong> <em>имяШрифта</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Задает шрифт текста в элементе. <em>ИмяШрифта</em> может
быть произвольной строкой, воспринимаемой командой
<strong>Tk_GetFontStruct</strong>. Если параметр не задан,
то его значением по умолчанию является системно-зависимый
шрифт.</dd>
2015-10-19 13:27:31 +03:00
<dt><strong>-justify</strong> <em>как</em></dt>
2015-10-19 13:27:31 +03:00
<dd>Задает способ выравнивания текста внутри области
текста. Аргумент <em>как</em> может принимать одно из
значений <strong>left</strong>, <strong>right</strong> или
<strong>center</strong>. Параметр оказывает влияние на
размещение текста, только если выводится несколько
строчек. По умолчанию параметр имеет значение
2015-10-19 13:27:31 +03:00
<strong>left</strong>.</dd>
<dt><strong>-stipple</strong> <em>двуцвет</em></dt>
<dd>Указывает на необходимость вывода текста в соответствии
с образцом пунктира. Допустимы любые значения,
воспринимаемые командой
<strong>Tk_GetBitmap</strong>. Если значением параметра
<strong>-stipple</strong> является пустая строка (по
умолчанию), то текст выводится сплошной линией.</dd>
<dt><strong>-tags</strong> <em>списокТегов</em></dt>
<dd>Задает набор тегов, относящихся к элементу.
<em>СписокТегов</em> представляет собой список имен тегов,
замещающий имеющиеся теги элемента. <em>СписокТегов</em>
может быть пустым.</dd>
<dt><strong>-width</strong> <em>длинаСтрочки</em></dt>
<dd>Задает максимальную длину строчки текста; значением
параметра может быть любое допустимое значение координат,
описанное выше (см. &quot;<a
href="#КООРДИНАТЫ">Координаты</a>&quot;). Если значение
параметра равно нулю (по умолчанию), то перенос строки
происходит только при появлении в тексте символа новой
строчки. Если, однако, значение параметра не равно нулю,
то концом строчки, длина которой превосходит
<em>длинуСтрочки</em>, считается символ пробела с номером,
ближайшим (с недостатком) к <em>длинеСтрочки</em>. Этот
символ пробела рассматривается как символ перехода на
новую строчку.</dd>
2015-10-19 13:27:31 +03:00
</dl>
</dd>
</dl>
<h3>ОКНА</h3>
2015-10-19 13:27:31 +03:00
<p>Элементы типа <strong>window</strong> предназначены для вывода
окна в указанное положение на канве. Окна создаются командой</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><em>имяПути</em> <strong>create window</strong> <em>x y
параметр значение параметр значение ...</em></dt>
<dd><p>Аргументы <em>x</em> и <em>y</em> задают координаты точки,
используемой для размещения окна на экране (подробнее
размещение текста описано ниже при описании параметра
<strong>-anchor</strong>). За координатами могут следовать
несколько пар <em>параметр-значение</em>, каждая из которых
устанавливает значение одного из параметров конфигурации
элемента. Такие же наборы <em>параметр-значение</em>
используются для изменения значений параметров с помощью
команды примитива <strong>itemconfigure</strong>. Окна
поддерживают следующие параметры:</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><strong>-anchor</strong> <em>положениеОпоры</em></dt>
<dd><em>ПоложениеОпоры</em> указывает способ размещения окна
по отношению к опорной точке элемента. Параметр может
принимать произвольное значение, воспринимаемое командой
<strong>Tk_GetAnchor</strong>. Так, если параметр имеет
значение <strong>center</strong>, то в опорной точке
располагается центр текста; значение <strong>n</strong>
указывает что в опорной точке располагается верхняя
центральная точка текста и т.д. По умолчанию параметр
имеет значение <strong>center</strong>.</dd>
<dt><strong>-height</strong> <em>пиксели</em></dt>
<dd>Задает высоту окна элемента. Аргумент <em>пиксели</em>
может иметь вид, описанный выше (см. &quot;<a href=
"#КООРДИНАТЫ">Координаты</a>&quot;). Если
параметр не задан или если его значением является пустая
строка, то высота окна определяется его содержимым.</dd>
<dt><strong>-tags</strong> <em>списокТегов</em></dt>
<dd>Задает набор тегов, относящихся к элементу.
<em>СписокТегов</em> представляет собой список имен тегов,
замещающий имеющиеся теги элемента. <em>СписокТегов</em>
может быть пустым.</dd>
<dt><strong>-width</strong> <em>пиксели</em></dt>
<dd>Задает ширину окна элемента. Аргумент <em>пиксели</em>
может иметь вид, описанный выше (см. &quot;<a href=
"#КООРДИНАТЫ">Координаты</a>&quot;). Если параметр не
задан или если его значением является пустая строка, то
ширина окна определяется его содержимым.</dd>
<dt><strong>-window</strong> <em>имяПути</em></dt>
<dd>Приписывает данному элементу окно. Окно, заданное
аргументом <em>имяПути</em>, должно быть либо потомком
примитива канвы, либо потомком одного из наследников
примитива канвы. <em>ИмяПути</em> может и не указывать
окно верхнего уровня.</dd>
2015-10-19 13:27:31 +03:00
</dl>
</dd>
</dl>
<p><strong>Замечание</strong>. Ограничения на управление окнами не
позволяют выводить графические элементы (такие, как кривые и
двуцветные изображения) поверх окон.</p>
2015-10-19 13:27:31 +03:00
<h3>ТИПЫ ЭЛЕМЕНТОВ, ОПРЕДЕЛЯЕМЫЕ В ПРИЛОЖЕНИЯХ</h3>
2015-10-19 13:27:31 +03:00
<p> В конкретных приложениях можно определять новые типы элементов
для примитивов канвы с помощью C кода. Описание этой возможности
приведено в документации для <strong>Tk_CreateItem</strong>.</p>
2015-10-19 13:27:31 +03:00
<h3>ПРЕДПОЧТЕНИЯ</h3>
2015-10-19 13:27:31 +03:00
<p> В текущей реализации новая канва не имеет никакого поведения
по умолчанию; для определения этого поведения необходимо явно
выполнить команды Tcl.</p>
2015-10-19 13:27:31 +03:00
</body>
</html>