projman/hlp/ru/tk/scale.html
2018-02-05 17:23:37 +03:00

381 lines
23 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
<head>
<title>scale</title>
</head>
<body>
<h1>scale</h1>
<p>Создание примитива линейной шкалы и управление им.</p>
<h2><a name=СИНТАКСИС></a>СИНТАКСИС</h2>
<pre>
<strong>scale</strong> <em>имяПути</em> ?<em>параметры</em>?
</pre>
<h2><a name=СТАНДАРТНЫЕАРАМЕТРЫ></a>СТАНДАРТНЫЕ ПАРАМЕТРЫ</h2>
<ul>
<li><strong>-activebackground</strong></li>
<li><strong>-background</strong></li>
<li><strong>-borderwidth</strong></li>
<li><strong>-cursor</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>-orient</strong></li>
<li><strong>-relief</strong></li>
<li><strong>-repeatdelay</strong></li>
<li><strong>-repeatinterval</strong></li>
<li><strong>-takefocus</strong></li>
<li><strong>-troughcolor</strong></li>
</ul>
<p>Подробное описание этих параметров приведено в разделе <a
href=options.html><strong>options</strong></a>.</p>
<h2><a name=ДОПОЛНИТЕЛЬНЫЕАРАМЕТРЫ_ПРИМИТИВА></a>ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ ПРИМИТИВА</h2>
<table>
<tr><td>Имя параметра:</td><td><strong>-bigincrement</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>bigIncrement</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>BigIncrement</strong></td></tr>
</table>
<p>Некоторые способы обращения со шкалой требуют использования
&quot;больших&quot; шагов. Этот параметр задает величину
большого шага. Если его значение равно 0 (как, например, по
умолчанию), то большой шаг считается равным 1/10 интервала
шкалы.</p>
<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>Задает префикс команды Tcl, исполняемой при всяком изменении
показателя шкалы какой-либо командой примитива. Сама команда Tcl
состоит из этого префикса, за которым следует пробел и
вещественное число, равное новому значению показателя шкалы.
<table>
<tr><td>Имя параметра:</td><td><strong>-digits</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>digits</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>Digits</strong></td></tr>
</table>
<p>Целое число, указывающее, сколько значащих цифр следует
сохранить при преобразовании показателя шкалы в строку
текста. Если это число неположительно, то выбирается наименьшее
число, обеспечивающее различное представление всех возможных
положений движка шкалы.<br>
<table>
<tr><td>Имя параметра:</td><td><strong>-from</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>from</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>From</strong></td></tr>
</table>
<p>Вещественное число левая или верхняя граница шкалы.</p>
<table>
<tr><td>Имя параметра:</td><td><strong>-label</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>label</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>Label</strong></td></tr>
</table>
<p>Строка текста, выводимая в качестве названия шкалы. Для
вертикальной шкалы выводится непосредственно справа от верхнего
конца шкалы. Для горизонтальной шкалы название выводится
непосредственно выше левого конца шкалы. Если значением
параметра служит пустая строка, то никакого названия не
выводится.</p>
<table>
<tr><td>Имя параметра:</td><td><strong>-length</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>length</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>Length</strong></td></tr>
</table>
<p>Задает желаемую длину шкалы на экране в пикселах (т.е. в любой
форме, приемлемой для <strong>Tk_GetPixels</strong>). Это высота
вертикальной шкалы или ширина горизонтальной.</p>
<table>
<tr><td>Имя параметра:</td><td><strong>-resolution</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>resolution</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>Resolution</strong></td></tr>
</table>
<p>Вещественное число, задающее цену деления шкалы. Если это
значение положительно, то показатель шкалы будет всегда
округляться к целому кратному этой величины (такими будут, в
частности, метки шкалы и границы ее интервала). Если это
значение неположительно, то округления не происходит. Значение
параметра по умолчанию равно &quot;1&quot; (т.е. показатели
должны быть целыми).</p>
<table>
<tr><td>Имя параметра:</td><td><strong>-showvalue</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>showValue</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>ShowValue</strong></td></tr>
</table>
<p>Булевское значение, указывающее, следует или нет выводить
текущий показатель шкалы.</p>
<table>
<tr><td>Имя параметра:</td><td><strong>-sliderlength</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>sliderLength</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>SliderLength</strong></td></tr>
</table>
<p>Задает размер движка шкалы (вдоль его длинной стороны) в
пикселах (т.е. в любой форме, приемлемой для
<strong>Tk_GetPixels</strong>).</p>
<table>
<tr><td>Имя параметра:</td><td><strong>-sliderrelief</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>sliderRelief</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>SliderRelief</strong></td></tr>
</table>
<p>Задает вид движка шкалы, например, <strong>raised</strong> или
<strong>sunken</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>activeBackground</strong>.</p>
<table>
<tr><td>Имя параметра:</td><td><strong>-tickinterval</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>tickInterval</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>TickInterval</strong></td></tr>
</table>
<p>Вещественное число, определяющее величину промежутка между
числовыми метками снизу или слева от движка. Если значение
параметра равно &quot;0&quot;, то метки не выводятся.</p>
<table>
<tr><td>Имя параметра:</td><td><strong>-to</strong></td></tr>
<tr><td>Имя в Базе:</td><td><strong>to</strong></td></tr>
<tr><td>Класс в Базе:</td><td><strong>To</strong></td></tr>
</table>
<p>Вещественное число правая или нижняя граница шкалы. Может быть
как меньше, так и больше значения, задаваемого параметром
<strong>from</strong>.</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>Задает имя глобальной переменной, ассоциированной со
шкалой. При изменении значения переменной шкала обновляется и
показывает новое значение. При интерактивном изменении
показателя шкалы происходит соответствующее изменение значения
переменной.</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>Задает желаемую толщину полосы шкалы (в любой форме, приемлемой
для <strong>Tk_GetPixels</strong>). Для вертикальной шкалы это
ее ширина, для горизонтальной высота.</p>
<h2><a name=ОПИСАНИЕ></a>ОПИСАНИЕ</h2>
<p>Команда <strong>scale</strong> создает новое
окно (задаваемое аргументом <em>имяПути</em>) и превращает его в
примитив линейной шкалы. Детали изображения шкалы, такие как ее
цвета, ориентация и объемный вид задаются с помощью описанных
выше дополнительных параметров. Команда scale возвращает
аргумент <em>имяПути</em>. В момент выполнения этой команды не
должно существовать окна с именем <em>имяПути</em>, но должен
существовать его предок.</p>
<p>Шкала представляет собой примитив, который выводит на экран
прямоугольную <em>полоску шкалы</em> и маленький
<em>движок</em>. Полоска отображает интервал вещественных чисел
(определенный параметрами <strong>from</strong>,
<strong>to</strong> и <strong>resolution</strong>), а положение
движка задает некоторое конкретное число на этом
интервале. Положение движка (а значит, и показатель шкалы) можно
менять с помощью &quot;Мыши&quot; или клавиатуры, как описано
ниже (см. &quot;<a href=#ПРИВЯЗКИ>ПРИВЯЗКИ</a>&quot;). При
каждом изменении показателя шкалы исполняется команда Tcl
(заданная параметром command), и другие примитивы получают
доступ к результатам выполненного изменения. Кроме того
показатель шкалы можно (с помощью параметра variable) связать с
некоторой переменной, так что изменения значений показателя или
переменной немедленно отзываются друг на друге.</p>
<p>В примитиве шкалы можно вывести также три внешних атрибута: имя
шкалы справа сверху (или слева сверху, если шкала
горизонтальна), число непосредственно слева от движка
(непосредственно сверху, если шкала горизонтальна) и набор
числовых меток непосредственно слева от текущего значения
(непосредственно снизу, если шкала горизонтальна). Вывод любого
из этих атрибутов можно отменить с помощью параметров
конфигурации.</p>
<h2><a name=КОМАНДАРИМИТИВА></a>КОМАНДА ПРИМИТИВА</h2>
<p>Команда <strong>scale</strong> создает новую команду Tcl с
именем <em>имяПути</em>. С помощью этой команды можно выполнять
различные операции над примитивом. Ее общий вид.</p>
<pre>
имяПути параметр ?арг арг ...?
</pre>
<p><em>Параметр</em> и <em>арг</em>ументы уточняют поведение
команды. Примитивы линейной шкалы допускают следующие формы
команды:</p>
<dl>
<dt><em>имяПути</em> <strong>cget</strong> <em>параметр</em></dt>
<dd>Возвращает текущее значение параметра конфигурации с
именем<em>параметр</em>. <em>Параметр</em>может быть любым из
параметров команды <strong>scale</strong>.</dd>
<dt><em>имяПути</em> <strong>configure</strong>
?<em>параметр</em>? ?<em>значение параметр значение ...</em>?</dt>
<dd>Запрашивает значения параметров конфигурации примитива или
изменяет их. Если параметр не указан, то возвращает список,
содержащий значения всех допустимых в <em>имениПути</em>
параметров (формат списка описан в
<strong>Tk_ConfigureInfo</strong>). Если <em>параметр</em>
задан, а его новое <em>значение</em> нет, то команда
возвращает часть полного списка, относящуюся к указанному
параметру. Если заданы одна или несколько пар
параметр-значение, то указанным параметрам примитива
присваиваются новые значения, а команда возвращает пустую
строку. Параметр может быть любым из параметров
команды<strong>scale</strong>.</dd>
<dt><em>имяПути</em> <strong>coords</strong> ?<em>значение</em>?</dt>
<dd>Возвращает список, элементами которого являются x и y
координаты точки посередине полосы шкалы, отвечающей
указанному значению. Если аргумент <em>значение</em> опущен,
то возвращаются координаты точки, отвечающей текущему
показателю шкалы.</dd>
<dt><em>имяПути</em> <strong>get</strong> ?<em>x y</em>?</dt>
<dd>Если аргументы <em>x</em> и <em>y</em> опущены, то
возвращает текущий показатель шкалы. Если они заданы, то они
определяют координаты точки в примитиве; в этом случае команда
возвращает значение показателя шкалы, соответствующего
указанной точке. При этом используется только одна из
координат: x для горизонтальной шкалы и y для
вертикальной.</dd>
<dt><em>имяПути</em> <strong>identify</strong> <em>x y</em></dt>
<dd>Возвращает текстовую строку, указывающую, какая часть шкалы
расположена в точке с координатами <em>x</em> и
<em>y</em>. Возвращаемое значение <strong>slider</strong>
означает, что это точка на движке; <strong>trough1</strong>
означает, что точка находится выше или левее движка;
<strong>trough2</strong>означает, что точка находится ниже или
правее движка. Если точка расположена вне шкалы, то команда
возвращает пустую строку.</dd>
<dt><em>имяПути</em> <strong>set</strong> <em>значение</em></dt>
<dd>Эта команда предназначена для изменения текущего показателя
шкалы, а значит, и положения движка. Аргумент
<em>значение</em>задает новое значение показателя. Если шкала
недоступна, то команда не приводит ни к каким
результатам.</dd>
</dl>
<h2><a name=ПРИВЯЗКИ></a>ПРИВЯЗКИ</h2>
<p>При создании линейной шкалы Tk автоматически создает привязки
класса, определяющие следующее поведение примитива по
умолчанию. В случае, если имеются различия в поведении
вертикальной и горизонтальной шкалы, описание поведения
горизонтальной приводится в скобках.</p>
<p>При нажатии клавиши 1 &quot;Мыши&quot; на полосе шкалы движок
сдвигается в направлении курсора на величину, заданную
параметром <strong>resolution</strong>. Если клавишу не
отпускать, то сдвиг автоматически повторяется.</p>
<p>Если нажать клавишу 1 на движке, то движок можно тащить.</p>
<p>Если нажать клавишу 1 на полосе шкалы при нажатой клавише
<strong>Control</strong>. то движок пробежит до конца полосы в
направлении курсора &quot;Мыши&quot;.</p>
<p>Если нажать клавишу 2, то показатель шкалы будет установлен в
положение курсора &quot;Мыши&quot;. Если тащить &quot;Мышь&quot;
с нажатой клавишей 2, то показатель шкалы будет соответственно
меняться.</p>
<p>Нажатие на клавиши <strong>Up</strong> и <strong>Left</strong>
приводит к перемещению движка вверх (влево) на величину,
указанную параметром<strong>resolution</strong>.</p>
<p>Нажатие на клавиши <strong>Down</strong> и
<strong>Right</strong> приводит к перемещению движка вниз
(вправо) на величину, указанную параметром
<strong>resolution</strong>.</p>
<p>Нажатие на клавиши <strong>Control-Up</strong> и
<strong>Control-Left</strong> приводит к перемещению движка
вверх (влево) на величину, указанную параметром
<strong>bigIncrement</strong>.</p>
<p>Нажатие на клавиши <strong>Control-Down</strong> и
<strong>Control-Right</strong> приводит к перемещению движка
вниз (вправо) на величину, указанную параметром
<strong>bigIncrement</strong>.</p>
<p>Нажатие на клавишу <strong>Home</strong> приводит к перемещению
движка вверх (влево) до конца полосы.</p>
<p>Нажатие на клавишу <strong>End</strong> приводит к перемещению
движка вниз (вправо) до конца полосы.</p>
<p>Если шкала сделана недоступной с помощью параметра
<strong>state</strong>, то ни одна из описанных выше привязок не
оказывает какого-либо действия.</p>
<p>Определяя новые привязки к отдельным примитивам или
переопределяя привязки класса, поведение линейной шкалы можно
изменить.</p>
</body>
</html>