Spec-Zone.ru › Tcl/Tk

scrollbar

ИМЯ
scrollbar — Создание и управление элементами управления прокруткой 'scrollbar' и индикаторами прокрутки
СИНТАКСИС
СТАНДАРТНЫЕ ПАРАМЕТРЫ
-activebackground, activeBackground, Foreground
-background или -bg, background, Background
-borderwidth или -bd, borderWidth, BorderWidth
-cursor, cursor, Cursor
-highlightbackground, highlightBackground, HighlightBackground
-highlightcolor, highlightColor, HighlightColor
-highlightthickness, highlightThickness, HighlightThickness
-jump, jump, Jump
-orient, orient, Orient
-relief, relief, Relief
-repeatdelay, repeatDelay, RepeatDelay
-repeatinterval, repeatInterval, RepeatInterval
-takefocus, takeFocus, TakeFocus
-troughcolor, troughColor, Background
ПАРАМЕТРЫ, СПЕЦИФИЧНЫЕ ДЛЯ ЭЛЕМЕНТА
-activerelief, activeRelief, ActiveRelief
-command, command, Command
-elementborderwidth, elementBorderWidth, BorderWidth
-width, width, Width
ОПИСАНИЕ
ЭЛЕМЕНТЫ
arrow1
trough1
slider
trough2
arrow2
КОМАНДА ЭЛЕМЕНТА
имя пути activate ?элемент?
имя пути cget параметр
имя пути configure ?параметр? ?значение параметра значение ...?
имя пути delta deltaX deltaY
имя пути fraction x y
имя пути get
имя пути identify x y
имя пути set первый последний
КОМАНДЫ ПРОКРУТКИ
префикс moveto дробь
префикс scroll число units
префикс scroll число pages
СТАРАЯ СИСТЕМА КОМАНД
имя пути set общее число единиц число единиц окна первый элемент последний элемент
префикс единица
СОПОСТАВЛЕНИЯ
ПРИМЕР
СМОТРИТЕ ТАКЖЕ
КЛЮЧЕВЫЕ СЛОВА

Имя

scrollbar — Создание и управление элементами управления прокруткой 'scrollbar' и индикаторами прокрутки

Синтаксис

scrollbarимя пути ?параметры?

Стандартные параметры

-activebackground, activeBackground, Foreground
-background или -bg, background, Background
-borderwidth или -bd, borderWidth, BorderWidth
-cursor, cursor, Cursor
-highlightbackground, highlightBackground, HighlightBackground
-highlightcolor, highlightColor, HighlightColor
-highlightthickness, highlightThickness, HighlightThickness
-jump, jump, Jump
-orient, orient, Orient
-relief, relief, Relief
-repeatdelay, repeatDelay, RepeatDelay
-repeatinterval, repeatInterval, RepeatInterval
-takefocus, takeFocus, TakeFocus
-troughcolor, troughColor, Background

Параметры, специфичные для элемента

Имя в командной строке: -activerelief
Имя в базе данных: activeRelief
Класс в базе данных: ActiveRelief
Указывает рельеф, который нужно использовать при отображении активного элемента, если таковой имеется. Элементы, отличные от активного, всегда отображаются с рельефом "выпуклым".
Имя в командной строке: -command
Имя в базе данных: command
Класс в базе данных: Command
Указывает префикс Tcl-команды, которую нужно вызвать для изменения вида в элементе, связанном со скроллбаром. При запросе изменения вида пользователем с помощью скроллбара вызывается Tcl-команда. Фактическая команда состоит из этого параметра и дополнительной информации, как описано ниже. Этот параметр почти всегда имеет значение, такое как .t xview или .t yview, состоящее из имени виджета и либо xview (если скроллбар предназначен для горизонтальной прокрутки), либо yview (для вертикальной прокрутки). Все прокручиваемые виджеты имеют команды xview и yview, которые принимают ровно те дополнительные аргументы, которые добавляются скроллбаром, как описано в разделе КОМАНДЫ ПРОКРУТКИ ниже.
Имя в командной строке: -elementborderwidth
Имя в базе данных: elementBorderWidth
Класс в базе данных: BorderWidth
Указывает ширину границ, нарисованных вокруг внутренних элементов скроллбара (двух стрелок и ползунка). Значение может иметь любую форму, приемлемую для Tk_GetPixels. Если это значение меньше нуля, используется значение параметра -borderwidth.
Имя в командной строке: -width
Имя в базе данных: width
Класс в базе данных: Width
Указывает желаемую узкую сторону окна скроллбара, не включая 3D-границу, если таковая имеется. Для вертикальных скроллбаров это будет ширина, а для горизонтальных — высота. Значение может иметь любую форму, приемлемую для Tk_GetPixels.

Описание

Команда scrollbar создаёт новое окно (определяемое аргументом имя пути) и преобразует его в виджет скроллбара. Дополнительные параметры, описанные выше, могут быть указаны в командной строке или в базе данных параметров для настройки аспектов скроллбара, таких как цвета, ориентация и рельеф. Команда scrollbar возвращает свой аргумент имя пути. В момент вызова этой команды не должно существовать окна с именем имя пути, но родительское окно имя пути должно существовать.

Скроллбар — это виджет, который отображает две стрелки, по одной на каждом конце скроллбара, и ползунок в средней части скроллбара. Он предоставляет информацию о том, что отображается в связанном окне, отображающем документ (например, редактируемый файл или чертёж). Положение и размер ползунка указывают, какая часть документа видна в связанном окне. Например, если ползунок в вертикальном скроллбаре занимает верхнюю треть области между двумя стрелками, это означает, что связанное окно отображает верхнюю треть своего документа.

Скроллбары можно использовать для изменения вида в связанном окне, щелкнув или перетащив мышкой. Подробности см. в разделе СОПОСТАВЛЕНИЯ ниже.

Элементы

Скроллбар отображает пять элементов, которые упоминаются в командах виджета для скроллбара:
arrow1
Верхняя или левая стрелка в скроллбаре.
trough1
Область между ползунком и arrow1.
slider
Прямоугольник, указывающий, что отображается в связанном виджете.
trough2
Область между ползунком и arrow2.
arrow2
Нижняя или правая стрелка в скроллбаре.

Команда виджета

Команда scrollbar создаёт новую Tcl-команду с именем имя пути. Эта команда может использоваться для вызова различных операций над виджетом. Она имеет следующий общий вид:
pathName option ?arg arg ...?
Параметр и аргументы определяют точное поведение команды. Возможны следующие команды для виджетов скроллбара:
pathName activate ?element?
Помечает элемент, указанный параметром element, как активный, что приводит к его отображению в соответствии с параметрами -activebackground и -activerelief. Единственные значения элементов, понимаемые этой командой, — arrow1, slider или arrow2. Если указано другое значение, ни один элемент полосы прокрутки не будет активным. Если element не указан, команда возвращает имя активного элемента или пустую строку, если ни один элемент не активен.
pathName cget option
Возвращает текущее значение параметра конфигурации, заданного параметром option. Option может принимать любое значение, принятое командой scrollbar.
pathName configure ?option? ?value option value ...?
Запрос или изменение параметров конфигурации виджета. Если параметр option не указан, возвращает список, описывающий все доступные параметры для pathName (см. Tk_ConfigureInfo для получения информации о формате этого списка). Если параметр option указан без значения value, то команда возвращает список, описывающий указанный параметр (этот список будет идентичен соответствующему подсписку возвращаемого значения, если параметр option не указан). Если указана одна или несколько пар option-value, то команда изменяет заданный параметр виджета на указанное значение; в этом случае команда возвращает пустую строку. Option может принимать любое значение, принятое командой scrollbar.
pathName delta deltaX deltaY
Возвращает вещественное число, указывающее на дробное изменение настроек полосы прокрутки, соответствующее заданному изменению положения ползунка. Например, если полоса прокрутки горизонтальная, результат указывает, насколько нужно изменить настройку полосы прокрутки, чтобы переместить ползунок на deltaX пикселей вправо (deltaY в этом случае игнорируется). Если полоса прокрутки вертикальная, результат указывает, насколько нужно изменить настройку полосы прокрутки, чтобы переместить ползунок на deltaY пикселей вниз. Аргументы и результат могут быть нулевыми или отрицательными.
pathName fraction x y
Возвращает вещественное число от 0 до 1, указывающее, где точка, заданная значениями x и y, находится в области желоба полосы прокрутки. Значение 0 соответствует верхней или левой части желоба, значение 1 соответствует нижней или правой части, 0,5 — середине и т. д. X и y должны быть координатами пикселей, относящимися к виджету полосы прокрутки. Если x и y относятся к точке за пределами желоба, используется ближайшая точка в желобе.
pathName get
Возвращает настройки полосы прокрутки в виде списка, элементы которого являются аргументами последней команды виджета set.
pathName identify x y
Возвращает имя элемента под точкой, заданной значениями x и y (например, arrow1), или пустую строку, если точка не лежит ни в одном элементе полосы прокрутки. X и y должны быть координатами пикселей, относящимися к виджету полосы прокрутки.
pathName set first last
Эта команда вызывается связанным виджетом полосы прокрутки, чтобы сообщить полосе прокрутки о текущем представлении в виджете. Команда принимает два аргумента, каждый из которых является вещественным числом от 0 до 1. Дробные числа описывают диапазон документа, который виден в связанном виджете. Например, если first равно 0,2, а last равно 0,4, это означает, что первая часть документа, видимая в окне, находится на 20% пути по документу, а последняя видимая часть находится на 40% пути.

Команды прокрутки

При взаимодействии пользователя с полосой прокрутки, например, при перетаскивании ползунка, полоса прокрутки уведомляет связанный виджет о необходимости изменения представления. Полоса прокрутки производит уведомление путём вычисления Tcl-команды, сгенерированной из параметра -command полосы прокрутки. Команда может принимать любой из следующих форм. В каждом случае prefix — содержимое параметра -command, который обычно имеет вид «.t”yview
prefix moveto fraction
Fraction — вещественное число от 0 до 1. Виджет должен настроить своё представление так, чтобы точка, заданная параметром fraction, появилась в начале виджета. Если fraction равно 0, оно относится к началу документа. 1.0 относится к концу документа, 0.333 — к точке, находящейся на одной трети пути по документу и т. д.
prefix scroll number units
Виджет должен настроить своё представление, смещая его на number единиц. Единицы определяются любым способом, который имеет смысл для виджета, например, символы или строки в текстовом виджете. Number может быть 1, что означает, что одна единица должна прокрутиться с верхней или левой части окна, или -1, что означает, что одна единица должна прокрутиться с нижней или правой части окна.
prefix scroll number pages
Виджет должен настроить своё представление, смещая его на number страниц. Виджету предоставляется определить значение страницы; обычно оно немного меньше, чем помещается в окне, чтобы было небольшое перекрытие между старым и новым представлениями. Number может быть 1, что означает, что следующая страница должна стать видимой, или -1, что означает, что предыдущая страница должна стать видимой.

Старый синтаксис команд

В версиях Tk до 4.0 команды виджетов set и get использовали другой формат. Этот формат всё ещё поддерживается для обратной совместимости, но устарел. В старом синтаксисе команды виджета set имеет следующий вид:
pathName set totalUnits windowUnits firstUnit lastUnit
В этой форме все аргументы — целые числа. TotalUnits указывает общий размер отображаемого объекта в связанном виджете. Значение одной единицы зависит от связанного виджета; например, в виджете текстового редактора единицы могут соответствовать строкам текста. WindowUnits указывает общее количество единиц, которое может поместиться в связанном окне одновременно. FirstUnit и lastUnit дают индексы первой и последней единиц, которые в настоящее время видны в связанном окне (ноль соответствует первой единице объекта).

В соответствии со старым синтаксисом команда виджета get возвращает список из четырёх целых чисел, состоящий из значений totalUnits, windowUnits, firstUnit и lastUnit из последней команды виджета set.

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

prefix unit
Unit — целое число, которое указывает, что должно появиться в верхней или левой части окна связанного виджета. Оно имеет то же значение, что и аргументы firstUnit и lastUnit для команды виджета set.

Последняя команда виджета set определяет, использовать ли старый синтаксис. Если ей передаются два вещественных аргумента, то в будущем будет использоваться новый синтаксис, а если четыре целых аргумента, то старый синтаксис.

Связывания

Tk автоматически создаёт классовые связывания для полос прокрутки, которые обеспечивают следующее поведение по умолчанию. Если поведение различается для вертикальных и горизонтальных полос прокрутки, поведение горизонтальной полосы прокрутки описано в скобках.
  1. Нажатие кнопки 1 на arrow1 вызывает сдвиг представления в связанном виджете вверх (влево) на одну единицу, так что документ, кажется, смещается вниз (вправо) на одну единицу. Если кнопка удерживается, действие повторяется автоматически.
  2. Нажатие кнопки 1 на trough1 вызывает сдвиг представления в связанном виджете вверх (влево) на один экран, так что документ, кажется, смещается вниз (вправо) на один экран. Если кнопка удерживается, действие повторяется автоматически.
  3. Нажатие кнопки 1 на ползунок и перетаскивание вызывает перетаскивание представления вместе с ползунком. Если параметр jump имеет значение true, представление не перетаскивается вместе с ползунком; оно меняется только при отпускании кнопки мыши.
  4. Нажатие кнопки 1 на trough2 вызывает сдвиг представления в связанном виджете вниз (вправо) на один экран, так что документ, кажется, смещается вверх (влево) на один экран. Если кнопка удерживается, действие повторяется автоматически.
  5. Нажатие кнопки 1 на arrow2 вызывает сдвиг представления в связанном виджете вниз (вправо) на одну единицу, так что документ, кажется, смещается вверх (влево) на одну единицу. Если кнопка удерживается, действие повторяется автоматически.
  6. Если нажата кнопка 2 на желобе или ползунке, устанавливается представление, соответствующее позиции мыши; перетаскивание мыши при нажатой кнопке 2 вызывает перетаскивание представления вместе с мышью. Если кнопка 2 нажата на одной из стрелок, это вызывает такое же поведение, как при нажатии кнопки 1.
  7. Если нажата кнопка 1 при удерживании клавиши Control, то, если мышь находится над arrow1 или trough1, представление меняется на самый верх (левый край) документа; если мышь находится над arrow2 или trough2, представление меняется на самый низ (правый край) документа; если мышь находится где-либо ещё, то нажатие кнопки не оказывает никакого действия.
  8. В вертикальных полосах прокрутки клавиши Вверх и Вниз имеют такое же поведение, как щелчки мыши по arrow1 и arrow2 соответственно. В горизонтальных полосах прокрутки эти клавиши не действуют.
  9. В вертикальных полосах прокрутки сочетания клавиш Ctrl+Вверх и Ctrl+Вниз имеют такое же поведение, как щелчки мыши по trough1 и trough2 соответственно. В горизонтальных полосах прокрутки эти клавиши не действуют.
  10. В горизонтальных полосах прокрутки клавиши Вверх и Вниз имеют такое же поведение, как щелчки мыши по arrow1 и arrow2 соответственно. В вертикальных полосах прокрутки эти клавиши не действуют.
  11. В горизонтальных полосах прокрутки сочетания клавиш Ctrl+Вверх и Ctrl+Вниз имеют такое же поведение, как щелчки мыши по trough1 и trough2 соответственно. В вертикальных полосах прокрутки эти клавиши не действуют.
  12. Клавиши Пред. и След. имеют такое же поведение, как щелчки мыши по trough1 и trough2 соответственно.
  13. Клавиша Home устанавливает представление в самый верх (левый край) документа.
  14. Клавиша End устанавливает представление в самый низ (правый край) документа.

Пример

Создайте окно с прокручиваемым виджетом text:
toplevel .tl
text .tl.t -yscrollcommand {.tl.s set}
scrollbar .tl.s -command {.tl.t yview}
grid .tl.t .tl.s -sticky nsew
grid columnconfigure .tl 0 -weight 1
grid rowconfigure .tl 0 -weight 1

См. также

ttk:scrollbar

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/scrollbar.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/scrollbar.htm

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API