Создание примитива линейной шкалы и управление им.
scale имяПути ?параметры?
Подробное описание этих параметров приведено в разделе options.
Имя параметра: | -bigincrement |
Имя в Базе: | bigIncrement |
Класс в Базе: | BigIncrement |
Некоторые способы обращения со шкалой требуют использования "больших" шагов. Этот параметр задает величину большого шага. Если его значение равно 0 (как, например, по умолчанию), то большой шаг считается равным 1/10 интервала шкалы.
Имя параметра: | -command |
Имя в Базе: | command |
Класс в Базе: | Command |
Задает префикс команды Tcl, исполняемой при всяком изменении показателя шкалы какой-либо командой примитива. Сама команда Tcl состоит из этого префикса, за которым следует пробел и вещественное число, равное новому значению показателя шкалы.
Имя параметра: | -digits |
Имя в Базе: | digits |
Класс в Базе: | Digits |
Целое число, указывающее, сколько значащих цифр следует
сохранить при преобразовании показателя шкалы в строку
текста. Если это число неположительно, то выбирается наименьшее
число, обеспечивающее различное представление всех возможных
положений движка шкалы.
Имя параметра: | -from |
Имя в Базе: | from |
Класс в Базе: | From |
Вещественное число левая или верхняя граница шкалы.
Имя параметра: | -label |
Имя в Базе: | label |
Класс в Базе: | Label |
Строка текста, выводимая в качестве названия шкалы. Для вертикальной шкалы выводится непосредственно справа от верхнего конца шкалы. Для горизонтальной шкалы название выводится непосредственно выше левого конца шкалы. Если значением параметра служит пустая строка, то никакого названия не выводится.
Имя параметра: | -length |
Имя в Базе: | length |
Класс в Базе: | Length |
Задает желаемую длину шкалы на экране в пикселах (т.е. в любой форме, приемлемой для Tk_GetPixels). Это высота вертикальной шкалы или ширина горизонтальной.
Имя параметра: | -resolution |
Имя в Базе: | resolution |
Класс в Базе: | Resolution |
Вещественное число, задающее цену деления шкалы. Если это значение положительно, то показатель шкалы будет всегда округляться к целому кратному этой величины (такими будут, в частности, метки шкалы и границы ее интервала). Если это значение неположительно, то округления не происходит. Значение параметра по умолчанию равно "1" (т.е. показатели должны быть целыми).
Имя параметра: | -showvalue |
Имя в Базе: | showValue |
Класс в Базе: | ShowValue |
Булевское значение, указывающее, следует или нет выводить текущий показатель шкалы.
Имя параметра: | -sliderlength |
Имя в Базе: | sliderLength |
Класс в Базе: | SliderLength |
Задает размер движка шкалы (вдоль его длинной стороны) в пикселах (т.е. в любой форме, приемлемой для Tk_GetPixels).
Имя параметра: | -sliderrelief |
Имя в Базе: | sliderRelief |
Класс в Базе: | SliderRelief |
Задает вид движка шкалы, например, raised или sunken.
Имя параметра: | -state |
Имя в Базе: | state |
Класс в Базе: | State |
Задает одно из трех состояний шкалы: normal,active или disabled. Если шкала недоступна, то значение ее показателя нельзя изменить и шкалу нельзя активизировать. Движок на активной шкале изображается цветом, заданным параметром activeBackground.
Имя параметра: | -tickinterval |
Имя в Базе: | tickInterval |
Класс в Базе: | TickInterval |
Вещественное число, определяющее величину промежутка между числовыми метками снизу или слева от движка. Если значение параметра равно "0", то метки не выводятся.
Имя параметра: | -to |
Имя в Базе: | to |
Класс в Базе: | To |
Вещественное число правая или нижняя граница шкалы. Может быть как меньше, так и больше значения, задаваемого параметром from.
Имя параметра: | -variable |
Имя в Базе: | variable |
Класс в Базе: | Variable |
Задает имя глобальной переменной, ассоциированной со шкалой. При изменении значения переменной шкала обновляется и показывает новое значение. При интерактивном изменении показателя шкалы происходит соответствующее изменение значения переменной.
Имя параметра: | -width |
Имя в Базе: | width |
Класс в Базе: | Width |
Задает желаемую толщину полосы шкалы (в любой форме, приемлемой для Tk_GetPixels). Для вертикальной шкалы это ее ширина, для горизонтальной высота.
Команда scale создает новое окно (задаваемое аргументом имяПути) и превращает его в примитив линейной шкалы. Детали изображения шкалы, такие как ее цвета, ориентация и объемный вид задаются с помощью описанных выше дополнительных параметров. Команда scale возвращает аргумент имяПути. В момент выполнения этой команды не должно существовать окна с именем имяПути, но должен существовать его предок.
Шкала представляет собой примитив, который выводит на экран прямоугольную полоску шкалы и маленький движок. Полоска отображает интервал вещественных чисел (определенный параметрами from, to и resolution), а положение движка задает некоторое конкретное число на этом интервале. Положение движка (а значит, и показатель шкалы) можно менять с помощью "Мыши" или клавиатуры, как описано ниже (см. "ПРИВЯЗКИ"). При каждом изменении показателя шкалы исполняется команда Tcl (заданная параметром command), и другие примитивы получают доступ к результатам выполненного изменения. Кроме того показатель шкалы можно (с помощью параметра variable) связать с некоторой переменной, так что изменения значений показателя или переменной немедленно отзываются друг на друге.
В примитиве шкалы можно вывести также три внешних атрибута: имя шкалы справа сверху (или слева сверху, если шкала горизонтальна), число непосредственно слева от движка (непосредственно сверху, если шкала горизонтальна) и набор числовых меток непосредственно слева от текущего значения (непосредственно снизу, если шкала горизонтальна). Вывод любого из этих атрибутов можно отменить с помощью параметров конфигурации.
Команда scale создает новую команду Tcl с именем имяПути. С помощью этой команды можно выполнять различные операции над примитивом. Ее общий вид.
имяПути параметр ?арг арг ...?
Параметр и аргументы уточняют поведение команды. Примитивы линейной шкалы допускают следующие формы команды:
При создании линейной шкалы Tk автоматически создает привязки класса, определяющие следующее поведение примитива по умолчанию. В случае, если имеются различия в поведении вертикальной и горизонтальной шкалы, описание поведения горизонтальной приводится в скобках.
При нажатии клавиши 1 "Мыши" на полосе шкалы движок сдвигается в направлении курсора на величину, заданную параметром resolution. Если клавишу не отпускать, то сдвиг автоматически повторяется.
Если нажать клавишу 1 на движке, то движок можно тащить.
Если нажать клавишу 1 на полосе шкалы при нажатой клавише Control. то движок пробежит до конца полосы в направлении курсора "Мыши".
Если нажать клавишу 2, то показатель шкалы будет установлен в положение курсора "Мыши". Если тащить "Мышь" с нажатой клавишей 2, то показатель шкалы будет соответственно меняться.
Нажатие на клавиши Up и Left приводит к перемещению движка вверх (влево) на величину, указанную параметромresolution.
Нажатие на клавиши Down и Right приводит к перемещению движка вниз (вправо) на величину, указанную параметром resolution.
Нажатие на клавиши Control-Up и Control-Left приводит к перемещению движка вверх (влево) на величину, указанную параметром bigIncrement.
Нажатие на клавиши Control-Down и Control-Right приводит к перемещению движка вниз (вправо) на величину, указанную параметром bigIncrement.
Нажатие на клавишу Home приводит к перемещению движка вверх (влево) до конца полосы.
Нажатие на клавишу End приводит к перемещению движка вниз (вправо) до конца полосы.
Если шкала сделана недоступной с помощью параметра state, то ни одна из описанных выше привязок не оказывает какого-либо действия.
Определяя новые привязки к отдельным примитивам или переопределяя привязки класса, поведение линейной шкалы можно изменить.