Главная


21. Виджет Scale

Виджет шкалы предназначен для того, чтобы позволить пользователю установить некоторое значение int или float в определенном диапазоне. Здесь представлены два виджета шкалы, горизонтальный и вертикальный:

Каждая шкала отображает ползунок (slider), который пользователь может перетаскивать вдоль желоба (trough), чтобы изменить значение. На рисунке первый ползунок сейчас находится на отметке -0,38, а второй - на отметке 7.

Чтобы создать новый виджет шкалы в качестве дочернего элемента корневого окна или фрейма с именем parent:

w = tk.Scale(parent, option, ...)

Конструктор возвращает новый виджет шкалы Scale. Опции:

Таблица 30. Опции виджета Scale

activebackground Цвет ползунка при наведении на него мыши. См. Раздел 5.3, "Цвета".
bg или background Фоновый цвет части виджета, находящейся за пределами желоба.
bd или borderwidth Ширина 3-мерной границы вокруг желоба и слайдера. По умолчанию - два пикселя. Допустимые значения см. в Раздел 5.1, "Размеры".
command Процедура, которая будет вызываться при каждом перемещении ползунка. Этой процедуре будет передан один аргумент - новое значение масштаба. Если ползунок перемещается быстро, вы можете не получить обратный вызов для каждого возможного положения, но вы обязательно получите обратный вызов, когда он установится.
cursor Курсор, который появляется при наведении мыши на шкалу. См. раздел Раздел 5.8, "Курсоры".
digits Способ, которым ваша программа считывает текущее значение, отображаемое в виджете шкалы, - это управляющая переменная; смотрите Раздел 52, "Управляющие переменные: значения, скрывающиеся за виджетами". Управляющая переменная для шкалы может быть IntVar, DoubleVar (для типа float) или StringVar. Если это строковая переменная, параметр digits определяет, сколько цифр использовать при преобразовании числового значения шкалы в строку.
font Шрифт, используемый для метки и аннотаций. См. раздел Раздел 5.4, "Шрифты".
fg или foreground Цвет текста, используемого для метки и аннотаций.
from_ Значение float, определяющее один конец диапазона шкалы. Для вертикальных шкал это верхний конец, для горизонтальных - левый. Подстрочный знак (_) не является опечаткой: поскольку from - зарезервированное слово в Python, эта опция пишется как from_. По умолчанию используется значение 0.0. Другой конец диапазона см. ниже в опции to.
highlightbackground Цвет выделения фокуса, когда шкала не имеет фокуса. Смотрите Раздел 53, "Фокус: маршрутизация ввода с клавиатуры".
highlightcolor Цвет подсветки фокуса, когда шкала имеет фокус.
highlightthickness Толщина выделения фокуса. По умолчанию равна 1. Установите highlightthickness=0, чтобы подавить отображение подсветки фокуса.
label Вы можете отобразить метку в виджете шкалы, установив этот параметр для текста метки. Метка отображается в левом верхнем углу, если шкала горизонтальная, или в правом верхнем углу, если вертикальная. По умолчанию метка отсутствует.
length Длина виджета шкалы. Это размер X, если масштаб горизонтальный, или размер Y, если вертикальный. По умолчанию - 100 пикселей. Допустимые значения см. в Раздел 5.1, "Размеры".
orient Установите orient=tk.HORIZONTAL, если вы хотите, чтобы шкала располагалась вдоль оси X, или orient=tk.VERTICAL, чтобы она располагалась параллельно оси Y. По умолчанию - вертикальная.
relief При значении по умолчанию relief=tk.FLAT шкала не выделяется на общем фоне. Вы также можете использовать relief=tk.SOLID, чтобы получить сплошную черную рамку вокруг шкалы, или любой другой тип рельефа, описанный в Раздел 5.6, "Стили рельефа".
repeatdelay Эта опция определяет, как долго нужно удерживать кнопку 1 в желобе, прежде чем ползунок начнет повторять движение в этом направлении. По умолчанию repeatdelay=300, а единицы измерения - миллисекунды.
repeatinterval Эта опция управляет частотой перемещения ползунка после удержания кнопки 1 в желобе в течение не менее repeatdelay миллисекунд. Например, repeatinterval=100 будет перемещать ползунок каждые 100 миллисекунд.
resolution Обычно пользователь может изменять значения только в целых единицах. Установите этот параметр в число, чтобы изменить наименьшее приращение значения шкалы. Например, если from_=-1.0 и to=1.0, и вы установите resolution=0.5, то шкала будет иметь 5 возможных значений: -1.0, -0.5, 0.0, +0.5 и +1.0. Все меньшие перемещения будут игнорироваться. Используйте resolution=-1, чтобы отключить любое округление значений.
showvalue Обычно текущее значение шкалы отображается в текстовом виде рядом с ползунком (над ним для горизонтальных шкал, слева для вертикальных). Установите этот параметр в 0, чтобы отключить эту надпись.
sliderlength Обычно ползунок занимает 30 пикселей по длине шкалы. Вы можете изменить эту длину, установив параметр sliderlength на желаемую длину; смотрите Раздел 5.1, "Размеры".
sliderrelief По умолчанию ползунок отображается с рельефным стилем tk.RAISED. Для других стилей рельефа установите для этого параметра любое из значений, описанных в Раздел 5.6, "Стили рельефа".
state Обычно виджеты шкалы реагируют на события мыши, а когда у них есть фокус, то и на события клавиатуры. Установите state=tk.DISABLED, чтобы сделать виджет не реагирующим.
takefocus Обычно фокус циклически перемещается по виджетам шкалы. Установите этот параметр в 0, если вы не хотите такого поведения. Смотрите Раздел 53, "Фокус: маршрутизация ввода с клавиатуры".
tickinterval Обычно на шкале не отображаются деления. Чтобы отображать периодические значения шкалы, установите этот параметр в число, и деления будут отображаться на кратных значениях. Например, если from_=0.0, to=1.0 и tickinterval=0.25, метки будут отображаться вдоль шкалы при значениях 0.0, 0.25, 0.50, 0.75 и 1.00. Эти метки отображаются под шкалой, если она горизонтальная, и слева от нее, если вертикальная. По умолчанию 0, что подавляет отображение делений.
to Значение float, определяющее один конец диапазона шкалы; другой конец определяется опцией from_, о которой говорилось выше. Значение to может быть как больше, так и меньше значения from_. Для вертикальных шкал значение to определяет нижнюю часть шкалы; для горизонтальных шкал - правый конец. По умолчанию значение равно 100,0.
troughcolor Цвет желоба.
variable Управляющая переменная для данной шкалы, если таковая имеется; см. Раздел 52, "Управляющие переменные: значения, скрытые за виджетами". Управляющие переменные могут быть из класса IntVar, DoubleVar (для типа float) или StringVar. В последнем случае числовое значение будет преобразовано в строку. Более подробную информацию об этом преобразовании см. выше в описании опции digits.
width Ширина желоба виджета. Это размер X для вертикальных масштабов и размер Y, если масштаб имеет orient=tk.HORIZONTAL. По умолчанию 15 пикселей.

Для объектов Scale доступны следующие методы:

.coords(value=None)

Возвращает координаты относительно левого верхнего угла виджета, соответствующие заданному значению масштаба. Для value=None вы получаете координаты центра ползунка в его текущем положении. Чтобы узнать, где бы находился ползунок, если бы значение шкалы было установлено на некоторое значение x, используйте value=x.

.get()

Этот метод возвращает текущее значение шкалы.

.identify(x, y)

При задании пары координат (x, y) относительно левого верхнего угла виджета этот метод возвращает строку, идентифицирующую, какая функциональная часть виджета находится в этом месте. Возвращаемое значение может быть любым из этих:

'slider' Ползунок.
'trough1' Для горизонтальных шкал - слева от ползунка; для вертикальных шкал - над ползунком.
'trough2' Для горизонтальных шкал - справа от ползунка; для вертикальных шкал - ниже ползунка.
'' Позиция (x, y) не находится ни на одной из вышеперечисленных частей.

.set(value)

Устанавливает значение шкалы.


>> Виджет Scrollbar