Лёгкий способ использования регуляторов

Регулируемые виджеты могут быть грубо разделены на те, для значений которых нужны специальные единицы измерения, и те, к значениям которых можно относиться как к числам. В группу с числовыми значениями входят виджеты регулировки диапазона (полосы прокрутки и масштабирования, ProgressBar, SpinButton). Все эти виджеты обычно “регулируются” пользователем с помощью мыши или клавиатуры. Они имеют минимальные и максимальные значения диапазона, в котором пользователь может изменять значение. По умолчанию они просто изменяют регулируемое значение.

Другая группа включает в себя виджеты Text, Viewprot, CompoundList и Scrolled Window. Все эти виджеты используют значение пикселей для своих значений. Также это все виджеты, которые неявно регулируются с помощью полос прокрутки. Когда все виджеты, к которым вы хотите применить регуляторы, создают свои собственные, либо используют вашу реализацию, то как правило вы хотите позволить виджетам использовать их собственные регуляторы. Обычно они переопределяют все значения, кроме value, в регуляторах, которые вы им даёте, на результат, зачастую, неопределённый (необходимо читать исходный код для того чтобы найти разницу между виджетами)

Теперь, вы вероятно подумали, что раз Text и Viewport переопределяют все настройки кроме значения, полосы прокрутки затрагивают только значение, и если вы разделите регулятор между Scrollbar и Text, то изменение Scrollbar автоматически отрегулирует Text? Конечно да! Например, так:

# Создаём собственный регулятор
viewport = gtk.Viewport()
# Используем созданный регулятор для scrollbar
vscrollbar = gtk.VScrollbar(viewport.get_vadjustment())

Предыдущая страница На уровень выше  Следующая страница
Глава 7. Регуляторы К оглавлению  7.3. Регулятор изнутри

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>