GTK+ 2.0 Tutorial |
||
---|---|---|
GTK имеет различные виджеты для регулировки диапазона с использованием мыши или клавиатуры, они обсуждаются в секции Range Widgets. Есть также несколько виджетов для регулирования текстовых или информационных данных выходящих за рамки окна отображения, для вывода данных определёнными порциями.
Очевидно, что приложение должно уметь реагировать на действия пользователя связанные с виджетами регулировки. Один из способов добиться этого, заставить виджет создавать сигнал определенного типа в момент изменения регулировок, перехватывая этот сигнал с помощью обработчика или контролировать состояние значения в структуре данных виджета. Вы также можете соединить несколько регуляторов вместе, чтобы регулировки одного отражались на других. Самый очевидный пример такого соединения, это регулировочная планка (scrollbar) в области просмотра (viewport) или прокрутка области текста. Если каждый виджет имеет собственное значение регулировки, то программисту потребуется написать для каждого свой собственный обработчик сигнала, для того, чтобы различать сигнал выхода одного от сигнала входа другого.
GTK решает эту проблему используя регулировочный объект (Adjustment object), это не виджет а метод передачи и хранения информации о регулировании в абстрактной и гибкой форме. Самое очевидное использование регулировочного объекта (Adjustment), это сохранение конфигурации параметров значения виджетов регулирования диапазона, таких как планка прокрутки (scrollbars) и скользящий регулятор (scale controls). Однако, так как Регуляторы (Adjustments) получены из объектов (Object), они имеют некоторые специальные возможности в отличие от нормальных структурных данных. Самое главное, они могут создавать сигналы как обычные виджеты и эти сигналы могут не только использоваться вашей программой для реакции на ваш ввод или вывод, но и прозрачно распространяться между регулировочными виджетами.
Вы можете посмотреть сходство регуляторов с другими виджетами: Progress Bars, Viewports, Scrolled Windows, и т.д.
Многие виджеты используют объекты регулирования созданные автоматически, но в некоторых случаях, показанных позже, требуется самостоятельное создание виджетов. Пример создания:
GtkObject *gtk_adjustment_new( gdouble value,
gdouble lower,
gdouble upper,
gdouble step_increment,
gdouble page_increment,
gdouble page_size );
|
Аргумент value используется для установки по умолчанию значения положения регулятора, обычно это позиция "самый верхний" или "крайний левый". Аргумент lower определяет самое нижнее значение регулятора. Step_increment аргумент определяет "меньшие" из двух приращений, которыми пользователь может изменить значение, в то время как page_increment - "больший". Аргумент page_size обычно устанавливает видимую площадь для панорамного виджета. Аргумент upper используется для предоставления самых нижних или крайних справа координат дочернему панорамному виджету. Это не всегда самое меньшее значение value так как в этих виджетах page_size обычно не равно нулю.
Radio Buttons |
|
Using Adjustments the Easy Way |