Создание примитива линейной шкалы и управление им.
-activebackground | -font | -highlightthickness |
-repeatinterval | -background | -foreground |
-orient | -takefocus | -borderwidth |
-highlightbackground | -relief | -troughcolor |
-cursor | -highlightcolor | -repeatdelay |
Некоторые способы обращения со
шкалой требуют использования “больших” шагов. Этот параметр задает величину
большого шага. Если его значение равно 0 (как, например, по умолчанию),
то большой шаг считается равным 1/10 интервала шкалы.
Вещественное число, задающее цену
деления шкалы. Если это значение положительно, то показатель шкалы будет
всегда округляться к целому кратному этой величины (такими будут, в частности,
метки шкалы и границы ее интервала). Если это значение неположительно,
то округления не происходит. Значение параметра по умолчанию равно ` 1 ’ (т.е. показатели должны быть целыми).
Задает вид движка шкалы, например,
raised
или sunken .
Вещественное число, определяющее
величину промежутка между числовыми метками снизу или слева от движка.
Если значение параметра равно “0”, то метки не выводятся.
Вещественное число — правая или
нижняя граница шкалы. Может быть как меньше, так и больше значения, задаваемого
параметром
from .
Шкала представляет собой примитив, который выводит на экран прямоугольную полоску шкалы и маленький движок. Полоска отображает интервал вещественных чисел (определенный параметрами from , to и resolution), а положение движка задает некоторое конкретное число на этом интервале. Положение движка (а значит, и показатель шкалы) можно менять с помощью “Мыши” или клавиатуры, как описано ниже (см. “ПРИВЯЗКИ”). При каждом изменении показателя шкалы исполняется команда Tcl (заданная параметром command), и другие примитивы получают доступ к результатам выполненного изменения. Кроме того показатель шкалы можно (с помощью параметра variable) связать с некоторой переменной, так что изменения значений показателя или переменной немедленно отзываются друг на друге.
В примитиве шкалы можно вывести также три внешних атрибута: имя шкалы справа сверху (или слева сверху, если шкала горизонтальна), число непосредственно слева от движка (непосредственно сверху, если шкала горизонтальна) и набор числовых меток непосредственно слева от текущего значения (непосредственно снизу, если шкала горизонтальна). Вывод любого из этих атрибутов можно отменить с помощью параметров конфигурации.
имяПути параметр арг арг ...
Параметр и аргументы уточняют поведение команды. Примитивы линейной шкалы допускают следующие формы команды:
имяПути cget параметр
Возвращает текущее значение параметра конфигурации с именемпараметр . Параметр может быть любым из параметров команды scale .
имяПути configure параметр значение параметр значение ...
Запрашивает значения параметров конфигурации примитива или изменяет их. Если параметр не указан, то возвращает список, содержащий значения всех допустимых в имениПути параметров (формат списка описан в Tk_ConfigureInfo). Если параметр задан, а его новое значение — нет, то команда возвращает часть полного списка, относящуюся к указанному параметру. Если заданы одна или несколько пар параметр-значение, то указанным параметрам примитива присваиваются новые значения, а команда возвращает пустую строку. Параметр может быть любым из параметров команды scale .
имяПути coords ?значение?
Возвращает список, элементами которого являются x и y координаты точки посередине полосы шкалы, отвечающей указанному значению. Если аргумент значение опущен, то возвращаются координаты точки, отвечающей текущему показателю шкалы.
имяПути get ?x y?
Если аргументы x иy опущены, то возвращает текущий показатель шкалы. Если они заданы, то они определяют координаты точки в примитиве; в этом случае команда возвращает значение показателя шкалы, соответствующего указанной точке. При этом используется только одна из координат: x для горизонтальной шкалы и y для вертикальной.
имяПути identify x y
Возвращает текстовую строку, указывающую, какая часть шкалы расположена в точке с координатами xиy. Возвращаемое значение slider означает, что это точка на движке; trough1 означает, что точка находится выше или левее движка; trough2означает, что точка находится ниже или правее движка. Если точка расположена вне шкалы, то команда возвращает пустую строку.
имяПути set значение
Эта команда предназначена для изменения текущего показателя шкалы, а значит, и положения движка. Аргумент значение задает новое значение показателя. Если шкала недоступна, то команда не приводит ни к каким результатам.
При нажатии клавиши 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, то ни одна из описанных выше привязок не оказывает какого-либо действия.
Определяя новые привязки к отдельным
примитивам или переопределяя привязки класса, поведение линейной шкалы
можно изменить.