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
- -background или -bg, background, Background
- ПАРАМЕТРЫ, СПЕЦИФИЧНЫЕ ДЛЯ ЭЛЕМЕНТА
-
-activerelief, activeRelief, ActiveRelief
- -command, command, Command
- -elementborderwidth, elementBorderWidth, BorderWidth
- -width, width, Width
- -command, command, Command
- ОПИСАНИЕ
- ЭЛЕМЕНТЫ
-
arrow1
- trough1
- slider
- trough2
- arrow2
- trough1
- КОМАНДА ЭЛЕМЕНТА
- КОМАНДЫ ПРОКРУТКИ
-
префикс moveto дробь
- префикс scroll число units
- префикс scroll число pages
- префикс scroll число units
- СТАРАЯ СИСТЕМА КОМАНД
- имя пути 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
- -background или -bg, background, Background
Параметры, специфичные для элемента
- Имя в командной строке: -activerelief
- Имя в базе данных: activeRelief
- Класс в базе данных: ActiveRelief
- Имя в базе данных: activeRelief
- Указывает рельеф, который нужно использовать при отображении активного элемента, если таковой имеется. Элементы, отличные от активного, всегда отображаются с рельефом "выпуклым".
- Имя в командной строке: -command
- Имя в базе данных: command
- Класс в базе данных: Command
- Имя в базе данных: command
- Указывает префикс Tcl-команды, которую нужно вызвать для изменения вида в элементе, связанном со скроллбаром. При запросе изменения вида пользователем с помощью скроллбара вызывается Tcl-команда. Фактическая команда состоит из этого параметра и дополнительной информации, как описано ниже. Этот параметр почти всегда имеет значение, такое как .t xview или .t yview, состоящее из имени виджета и либо xview (если скроллбар предназначен для горизонтальной прокрутки), либо yview (для вертикальной прокрутки). Все прокручиваемые виджеты имеют команды xview и yview, которые принимают ровно те дополнительные аргументы, которые добавляются скроллбаром, как описано в разделе КОМАНДЫ ПРОКРУТКИ ниже.
- Имя в командной строке: -elementborderwidth
- Имя в базе данных: elementBorderWidth
- Класс в базе данных: BorderWidth
- Имя в базе данных: elementBorderWidth
- Указывает ширину границ, нарисованных вокруг внутренних элементов скроллбара (двух стрелок и ползунка). Значение может иметь любую форму, приемлемую для Tk_GetPixels. Если это значение меньше нуля, используется значение параметра -borderwidth.
- Имя в командной строке: -width
- Имя в базе данных: width
- Класс в базе данных: Width
- Имя в базе данных: width
- Указывает желаемую узкую сторону окна скроллбара, не включая 3D-границу, если таковая имеется. Для вертикальных скроллбаров это будет ширина, а для горизонтальных — высота. Значение может иметь любую форму, приемлемую для Tk_GetPixels.
Описание
Команда scrollbar создаёт новое окно (определяемое аргументом имя пути) и преобразует его в виджет скроллбара. Дополнительные параметры, описанные выше, могут быть указаны в командной строке или в базе данных параметров для настройки аспектов скроллбара, таких как цвета, ориентация и рельеф. Команда scrollbar возвращает свой аргумент имя пути. В момент вызова этой команды не должно существовать окна с именем имя пути, но родительское окно имя пути должно существовать.Скроллбар — это виджет, который отображает две стрелки, по одной на каждом конце скроллбара, и ползунок в средней части скроллбара. Он предоставляет информацию о том, что отображается в связанном окне, отображающем документ (например, редактируемый файл или чертёж). Положение и размер ползунка указывают, какая часть документа видна в связанном окне. Например, если ползунок в вертикальном скроллбаре занимает верхнюю треть области между двумя стрелками, это означает, что связанное окно отображает верхнюю треть своего документа.
Скроллбары можно использовать для изменения вида в связанном окне, щелкнув или перетащив мышкой. Подробности см. в разделе СОПОСТАВЛЕНИЯ ниже.
Элементы
Скроллбар отображает пять элементов, которые упоминаются в командах виджета для скроллбара:- arrow1
- Верхняя или левая стрелка в скроллбаре.
- trough1
- Область между ползунком и arrow1.
- slider
- Прямоугольник, указывающий, что отображается в связанном виджете.
- trough2
- Область между ползунком и arrow2.
- arrow2
- Нижняя или правая стрелка в скроллбаре.
Команда виджета
Команда scrollbar создаёт новую Tcl-команду с именем имя пути. Эта команда может использоваться для вызова различных операций над виджетом. Она имеет следующий общий вид:pathName option ?arg arg ...?Параметр и аргументы определяют точное поведение команды. Возможны следующие команды для виджетов скроллбара:
Команды прокрутки
При взаимодействии пользователя с полосой прокрутки, например, при перетаскивании ползунка, полоса прокрутки уведомляет связанный виджет о необходимости изменения представления. Полоса прокрутки производит уведомление путём вычисления 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 на arrow1 вызывает сдвиг представления в связанном виджете вверх (влево) на одну единицу, так что документ, кажется, смещается вниз (вправо) на одну единицу. Если кнопка удерживается, действие повторяется автоматически.
- Нажатие кнопки 1 на trough1 вызывает сдвиг представления в связанном виджете вверх (влево) на один экран, так что документ, кажется, смещается вниз (вправо) на один экран. Если кнопка удерживается, действие повторяется автоматически.
- Нажатие кнопки 1 на ползунок и перетаскивание вызывает перетаскивание представления вместе с ползунком. Если параметр jump имеет значение true, представление не перетаскивается вместе с ползунком; оно меняется только при отпускании кнопки мыши.
- Нажатие кнопки 1 на trough2 вызывает сдвиг представления в связанном виджете вниз (вправо) на один экран, так что документ, кажется, смещается вверх (влево) на один экран. Если кнопка удерживается, действие повторяется автоматически.
- Нажатие кнопки 1 на arrow2 вызывает сдвиг представления в связанном виджете вниз (вправо) на одну единицу, так что документ, кажется, смещается вверх (влево) на одну единицу. Если кнопка удерживается, действие повторяется автоматически.
- Если нажата кнопка 2 на желобе или ползунке, устанавливается представление, соответствующее позиции мыши; перетаскивание мыши при нажатой кнопке 2 вызывает перетаскивание представления вместе с мышью. Если кнопка 2 нажата на одной из стрелок, это вызывает такое же поведение, как при нажатии кнопки 1.
- Если нажата кнопка 1 при удерживании клавиши Control, то, если мышь находится над arrow1 или trough1, представление меняется на самый верх (левый край) документа; если мышь находится над arrow2 или trough2, представление меняется на самый низ (правый край) документа; если мышь находится где-либо ещё, то нажатие кнопки не оказывает никакого действия.
- В вертикальных полосах прокрутки клавиши Вверх и Вниз имеют такое же поведение, как щелчки мыши по arrow1 и arrow2 соответственно. В горизонтальных полосах прокрутки эти клавиши не действуют.
- В вертикальных полосах прокрутки сочетания клавиш Ctrl+Вверх и Ctrl+Вниз имеют такое же поведение, как щелчки мыши по trough1 и trough2 соответственно. В горизонтальных полосах прокрутки эти клавиши не действуют.
- В горизонтальных полосах прокрутки клавиши Вверх и Вниз имеют такое же поведение, как щелчки мыши по arrow1 и arrow2 соответственно. В вертикальных полосах прокрутки эти клавиши не действуют.
- В горизонтальных полосах прокрутки сочетания клавиш Ctrl+Вверх и Ctrl+Вниз имеют такое же поведение, как щелчки мыши по trough1 и trough2 соответственно. В вертикальных полосах прокрутки эти клавиши не действуют.
- Клавиши Пред. и След. имеют такое же поведение, как щелчки мыши по trough1 и trough2 соответственно.
- Клавиша Home устанавливает представление в самый верх (левый край) документа.
- Клавиша 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