scrollbar
Создание примитива линейки прокрутки и управление им.
 
  • Синтаксис
  • Стандартные параметры
  • Дополнительные параметры примитива
  • Описание
  • Элементы
  • Команда примитива
  • Команды прокрутки
  • Синтаксис команды
  • Привязки
  • СИНТАКСИС scrollbar имяПути параметры СТАНДАРТНЫЕ ПАРАМЕТРЫ
       
    -activebackground -highlightbackground -orient 
    -takefocus  -background -highlightcolor 
    -relief -troughcolor  -borderwidth 
    -highlightthickness -repeatdelay -cursor 
    -jump -repeatinterval
    Подробное описание этих параметров приведено в разделе options. ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ ПРИМИТИВА Имя параметра: -activerelief
    Имя в Базе: activeRelief
    Класс в Базе: ActiveRelief


    Задает объемный вид изображения активного элемента. Все неактивные элементы изображаются выпуклыми.
     

    Имя параметра: -command
    Имя в Базе: command
    Класс в Базе: Command


    Задает префикс команды Tcl, исполняемой при всяком изменении состоянии линейки прокрутки пользователем. Сама команда Tcl состоит из этого префикса, за которым следует дополнительная информация, описанная ниже. Значением этого параметра обычно является что-нибудь вроде .t xview или .t yview — имя примитива, за которым следует xview (для горизонтальной линейки) или yview (для вертикальной). У каждого примитива линейки прокрутки есть команды xview и yview, аргументы которых описаны ниже (см. "Команды прокрутки").
     

    Имя параметра: -elementborderwidth
    Имя в Базе: elementBorderWidth
    Класс в Базе: ElementBorderWidth


    Задает ширину окантовки каждого из внутренних элементов линейки (обеих стрелок и движка). Значение может быть представлено в любом виде, приемлемом для Tk_GetPixels. Если заданное значение отрицательно, то вместо него используется значение параметра borderWidth.
     

    Имя параметра: -width
    Имя в Базе: width
    Класс в Базе: Width
    Задает желаемую толщину окна линейки (не включая трехмерной окантовки, если она имеется) в любой форме, приемлемой для Tk_GetPixels. Для вертикальной шкалы это ее ширина, для горизонтальной — высота.
    ОПИСАНИЕ Команда scrollbar создает новое окно (задаваемое аргументом имяПути) и превращает его в примитив линейки прокрутки. Детали изображения линейки, такие как ее цвета, ориентация и объемный вид, задаются с помощью описанных выше дополнительных параметров. Команда возвращает аргумент имяПути. В момент выполнения этой команды не должно существовать окна с именем имяПути, но должен существовать его предок.

    Линейка прокрутки представляет собой примитив, который выводит на экран две стрелки (по одной на каждом конце линейки) и движок в средней части линейки. Линейка дает информацию о том, что видно в ассоциированном окне линейки. Это окно содержит какой-нибудь документ — например, редактируемый текст или рисунок. Размер и положение движка указывают, какая часть документа видна в окне. Если, например, движок покрывает верхнюю треть вертикальной линейки, то в ассоциированном окне выведена верхняя треть документа.

    Линейки прокрутки используются для перемещения видимой части документа в ассоциированном окне с помощью “Мыши”. Подробности описаны ниже (см. Привязки).

    ЭЛЕМЕНТЫ Линейка прокрутки состоит из пяти элементов, на которые ссылаются команды примитива:

    arrow1

    Верхняя или левая стрелка линейки. trough1 Промежуток между движком и первой стрелкой. slider Прямоугольник, который показывает, какая часть документа видна на экране. trough2 Промежуток между движком и первой стрелкой. arrow2 Нижняя или правая стрелка линейки.
    КОМАНДА ПРИМИТИВА Команда scrollbar создает новую команду Tcl с именем имяПути. С помощью этой команды можно выполнять различные операции над примитивом. Ее общий вид

    имяПути параметр арг арг ...

    Параметр и аргументы уточняют поведение команды. Примитивы линейки прокрутки допускают следующие формы команды: имяПути activate элемент Помечает элемент, заданный аргументом элемент, как активный. Активный элемент отображается на экране с использованием значений параметров activeBackground и activeRelief. Значениями аргумента могут быть только arrow1, slider или arrow2. Если элемент не задан, то команда возвращает имя текущего активного элемента; если активных элементов нет, то команда возвращает пустую строку. имяПути cget параметр Возвращает текущее значение параметра конфигурации с именем параметр. Параметр может быть любым из параметров команды scrollbar. имяПути configure параметр значение параметр значение ...

    Запрашивает значения параметров конфигурации примитива или изменяет их. Если параметр не указан, то возвращает список, содержащий значения всех допустимых в имениПути параметров (формат списка описан в Tk_ConfigureInfo). Если параметр задан, а его новое значение — нет, то команда возвращает часть полного списка, относящуюся к указанному параметру. Если заданы одна или несколько пар параметр-значение, то указанным параметрам примитива присваиваются новые значения, а команда возвращает пустую строку. Параметр может быть любым из параметров команды scrollbar.

    имяПути delta прирX прирY

    Возвращает вещественное число, задающее изменение показателя линейки при данном перемещении движка. Например, если линейка горизонтальна, то результат указывает, насколько нужно изменить показатель линейки, чтобы движок сдвинулся вправо на прирX пикселей (в этом случае значение аргумента прирY игнорируется). Если линейка вертикальна, то результат указывает, насколько нужно изменить показатель линейки, чтобы движок сдвинулся вниз на прирY пикселей. Как аргументы, так и результат могут принимать отрицательные и нулевое значения. имяПутиfraction x y Возвращает вещественное число между нулем и единицей, указывающее, где на полосе линейки лежит точка с координатами x и y. Значение `0’ соответствует самой левой или самой верхней точке полосы, значение `1’ — самой правой или самой нижней, `0.5’ указывает на середину полосы и т.д. Координаты x и y — это координаты в пикселях относительно примитива линейки. Если они задают точку вне полосы линейки, то вместо нее используется точка полосы, ближайшая к заданной. имяПути get Возвращает показатели линейки в виде списка, элементы которого — значения аргументов последней выполненной команды примитива set. имяПути identify x y Возвращает имя элемента, занимающего точку с координатами (x,y) (например, arrow1). Если точка расположена вне линейки, то команда возвращает пустую строку. Координаты x и y — это координаты в пикселах относительно примитива линейки. имяПути set перв послед Эта команда выполняется примитивом, ассоциированным с линейкой, и сообщает линейке текущий вид этого примитива. Значением каждого из двух аргументов команды является число в промежутке от ‘0’ до `1’. Эти числа описывают видимую в окне примитива область документа. Если, например, значение аргумента перв равно `0.2’, а значение аргумента послед равно `0.4’, то верхушка видимой части документа отстоит на 20% от его начала, а конец видимой части — на 40% от начала.
    КОМАНДЫ ПРОКРУТКИ Когда пользователь взаимодействует с линейкой прокрутки (например, тащит движок), линейка требует от ассоциированного примитива изменения его состояния. Это требование осуществляется за счет исполнения команды Tcl, которая генерируется исходя из значения параметра -command примитива линейки. Команда может иметь один из следующих видов, где префикс — это значение параметра -command (обычно что-нибудь вроде .t yview).

    префикс moveto величина

    Величина представляет собой вещественное число между нулем и единицей. Примитив должен изменить содержимое окна таким образом, чтобы точка, заданная аргументом величина, располагалась в начале окна. Например, величина равная ‘0’ указывает на начало документа, `1.0’ — на его конец, `0.333’ — на точку, отстоящую от начала документа на одну треть и т.д. префикс scroll число units Сдвигает содержимое окна примитива на число единиц. Единицы — это порции документа, имеющие смысл для документа данного типа (например, символы или строчки для текстового примитива). Аргумент число может принимать значение `1' (и тогда одна единица должна уйти из окна вверх или влево), или `-1’ (и тогда одна единица должна уйти из окна вниз или вправо). префикс scroll числоpages Содержимое окна примитива должно сдвинуться на число страниц. Страницы — это порции документа, имеющие смысл для документа данного типа; обычно размер порции несколько меньше того, что помещается в окне, и поэтому новое содержимое окна частично перекрывается со старым. Аргумент число может принимать значение `1’ (и тогда становится видимой следующая страница), или `-1’ (и тогда становится видимой предыдущая страница).
    СИНТАКСИС КОМАНДЫ В младших версиях Tk (до 4.0) команды примитива set и get имели другой вид. В целях совместимости эта форма команд поддерживается и до сих пор, однако использовать ее не стоит. Вот старый вид команды:

    имяПути set числоЕдин окноЕдин первЕдин последЕдин

    Значения всех аргументов команды должны быть целыми числами. Аргумент числоЕдин задает общее число единиц в документе. Единицы — это порции документа, имеющие смысл для документа данного типа (например, строчки для текстового примитива). Аргумент окноЕдин указывает число единиц, одновременно помещающихся в окно ассоциированного примитива. Аргументы первЕдин и последЕдин указывают индексы первой и последней единиц, находящихся в окне в текущий момент (ноль указывает на первую единицу объекта). В старом синтаксисе команда get возвращала список из четырех целых чисел — значений аргументов последней выполненной команды примитива set.

    В старом синтаксисе команды, генерируемые примитивом линейки, также имеют другой вид:

    префикс единица

    Аргумент единица представляет собой целое число, указывающее, что должно появляться вверху или слева в окне ассоциированного примитива. Этот аргумент интерпретируется так же, как и аргументы первЕдин и последЕдин команды примитива set. Последняя выполненная команда примитива set определяет, следует ли использовать старый синтаксис. Если ее аргументы — два вещественных числа, то в дальнейшем будет использоваться новый синтаксис, а если четыре целых — то старый.
    ПРИВЯЗКИ При создании линейки прокрутки Tk автоматически создает привязки класса, определяющие следующее поведение примитива по умолчанию. В случае, если имеются различия в поведении вертикальной и горизонтальной линеек, описание поведения горизонтальной приводится в скобках.

    При нажатии клавиши 1 “Мыши” на стрелке 1 (arrow1) содержимое окна ассоциированного примитива сдвигается вниз (вправо) на одну единицу. Если клавишу не отпускать, то сдвиг автоматически повторяется.

    При нажатии клавиши 1 “Мыши” на полосе 1 (trough1) содержимое окна ассоциированного примитива сдвигается вниз (вправо) на один экран. Если клавишу не отпускать, то сдвиг автоматически повторяется.

    Если нажать клавишу 1 на движке, то движок можно тащить. Если значение параметра jump — истина, то содержимое окна не меняется, пока не отпущена клавиша “Мыши”.

    При нажатии клавиши 1 “Мыши” на полосе 2 (trough2) содержимое окна ассоциированного примитива сдвигается вверх (влево) на один экран. Если клавишу не отпускать, то сдвиг автоматически повторяется.

    При нажатии клавиши 1 “Мыши” на стрелке 2 (arrow2) содержимое окна ассоциированного примитива сдвигается вверх (влево) на одну единицу. Если клавишу не отпускать, то сдвиг автоматически повторяется.

    Если нажать клавишу 2 на полосе или на движке, то содержимое окна переходит в положение, указанное курсором “Мыши” ; если тащить курсор при нажатой клавише 2, то содержимое окна движется вслед за курсором. Нажатие клавиши 2 на стрелках приводит к тому же результату, что и нажатие клавиши 1.

    Если клавиша 1 нажимается при нажатой клавише Control, то в окне появляется начало документа (если курсор “Мыши” находится на стрелке 1 или полосе 1) или его конец (если курсор находится на стрелке 2 или полосе 2). При других положениях курсора такое нажатие на клавиши не приводит ни к каким действиям.

    В вертикальных линейках прокрутки нажатие на клавиши Up и Down приводят к такому же результату, что и щелчок “Мыши” на стрелках вверх и вниз соответственно. В горизонтальных линейках нажатие на эти клавиши не вызывает никаких действий.

    В вертикальных линейках прокрутки нажатие на клавиши Control-Up и Control-Down приводят к такому же результату, что и щелчок “Мыши” на верхней и нижней полосках линейки соответственно. В горизонтальных линейках нажатие на эти клавиши не вызывает никаких действий.

    В горизонтальных линейках прокрутки нажатие на клавиши Up и Down приводят к такому же результату, что и щелчок “Мыши” на левой и правой стрелках соответственно. В вертикальных линейках нажатие на эти клавиши не вызывает никаких действий.

    В горизонтальных линейках прокрутки нажатие на клавиши Control-Up и Control-Down приводят к такому же результату, что и щелчок “Мыши” на левой и правой полосках линейки соответственно. В вертикальных линейках нажатие на эти клавиши не вызывает никаких действий.

    Нажатие на клавиши Prior и Next приводят к такому же результату, что и щелчки “Мыши” на полосе 1 и полосе 2 соответственно.

    Нажатие на клавишу Home приводит к появлению в окне начала документа.

    Нажатие на клавишу End приводит к появлению в окне конца документа.
     
     


    [ Список команд Tk ]            [ Содержание ]