Регуляторы (gtk.Ajustment)

В GTK есть большое число виджетов, которые могут быть визуально изменены пользователем, то есть, с помощью мыши или клавиатуры. Например, существуют виджеты регулировки диапазона, описываемые в разделе Виджеты регулировки диапазона. Также есть несколько виджетов, которые отображают некую часть от большого количества данных, таких как text или viewport.

Конечно, приложению необходимо реагировать на изменения которые пользователь делает в виджетах регулировки диапазона. Один из способов сделать это – заставить каждый виджет излучать свой тип сигнала, и когда регулятор меняется, то передавать новое значение в обработчик сигнала, либо нужно заглядывать в данные виджета. Но наверняка вам бы хотелось подключить такой регулятор к нескольким виджетам сразу, чтобы при изменении одного, он изменял других. Самый очевидный пример этого – это подключение полосы прокрутки к viewport или к text area. Если каждый виджет имеет собственный способ получения и установки регулирующих значений, тогда программист должен писать их собственные обработчики для передачи выхода одного виджета ко “входу” метода устанавливающего регулятор другого виджета.

GTK решает эту проблему, используя объект Adjustment, который не является виджетом, но является способом хранить и передавать информацию регуляторов в абстрактной и гибкой форме. Самое обычное использование Adjustment - это хранение настроек и значений виджетов регулировки диапазона, таких как полосы прокрутки и масштабирования. Конечно, т.к. Adjustment произошёл от Object, то он имеет несколько специальных возможностей отличающих его от обычных структур данных. Самое важное, что он может излучать сигналы точно также, как и виджеты, и эти сигналы могут быть использованы программой не только для ответа на пользовательский ввод по регулируемым виджетам, но и для распространения регулирующих значений между всеми регулируемыми виджетами.

Вы увидите насколько гибки регуляторы, когда увидите другие виджеты использующие их: ProgressBar, Viewport, ScrolledWindow и прочие.

7.1. Создание регулятора

Большинство виджетов используют регуляторы автоматически, но в некоторых случаях, которые будут показаны позже, вам нужно создать регулятор самостояятельно. Для создания регулятора используется:

  adjustment = gtk.Adjustment(value=0, lower=0, upper=0, step_incr=0, page_incr=0, page_size=0)

Аргумент value это начальное значение, которое вы хотите дать adjustment. Обычно оно соответствует верхней или левой позиции регулируемого виджета. Аргумент lower назначает минимальное значение, которое может содержать adjustment. Аргумент step_incr назначает “меньшее” изменение значения пользователем, когда page_incr “большее”. Аргумент page_size обычно отвечает за видимую область виджета. Аргумент upper обозначает самую нижнюю или самую правую точку виджета. Т.к. это не всегда число большее, чем может принять value, page_size таких виджетов обычно не равен нулю.


Предыдущая страница На уровень выше  Следующая страница
6.4. Переключатели К оглавлению  7.2. Лёгкий способ использования регуляторов

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

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

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