GTK+ 2.0 Tutorial

<<< Previous

Range Widgets

Next >>>


Виджет масштабирования (Scale Widgets)

Виджеты масштабирования используются, чтобы позволить пользователю визуально выбирать и управлять значениями в пределах определенного диапазона. Вы можете использовать виджет масштабирования например при увеличении или уменьшении отображаемой области просмотра изображения, или для регулирования всевозможных параметров (цвет, яркость, контрастность и т.д.), а также для выбора промежутка времени через которое заставка (screensaver) закроет экран.

Создание масштабируемых виджетов

Как и для scrollbars, есть два типа виджетов масштабирования, горизонтальные и вертикальные. (большинство программистов предпочитают горизонтальные) Так как они работают одинаково, нет никакого смысла рассматривать их по отдельности. Следующие функции создают горизонтальные и вертикальные виджеты масштабирования соответственно:

GtkWidget *gtk_vscale_new( GtkAdjustment *adjustment ); GtkWidget *gtk_vscale_new_with_range( gdouble min, gdouble max, gdouble step ); GtkWidget *gtk_hscale_new( GtkAdjustment *adjustment ); GtkWidget *gtk_hscale_new_with_range( gdouble min, gdouble max, gdouble step );

Аргумент adjustment может быть любым регулятором созданным gtk_adjustment_new(), или NULL, в случае создания анонимного регулятора все значения устанавливаются Чтобы избежать путаницы, вы наверное захотите установить  регулятор с page_size 0.0, так чтобы его верхнее положение соответствовало наибольшему значению которое может выбрать пользователь. О подходящем регулировании заботится _new_with_range(). (Если вы уже полностью запутались, прочитайте секцию снова, для того чтобы понять как создавать регуляторы и манипулировать ими.)

Функции и Сигналы

Виджеты масштабирования могут показывать своё текущее значение рядом со своей "колеёй" в виде чисел. По умолчанию значение отображается, но вы можете изменить это поведение с помощью функции:

void gtk_scale_set_draw_value( GtkScale *scale, gboolean draw_value );

Аргумент draw_value выставляется в значение TRUE или FALSE, в зависимости от желаемого результата.

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

void gtk_scale_set_digits( GtkScale *scale, gint digits );

Аргумент digits содержит кол-во знаков которые будут отображены после запятой. Вы можете установить любое число digits, но на экран будет выведено не более 13 знаков после запятой.

Наконец, значение может быть отодвинуто на любую позицию относительно колеи:

void gtk_scale_set_value_pos( GtkScale *scale, GtkPositionType pos );

Аргумент  pos имеет тип GtkPositionType и может принимать одно из значений:

GTK_POS_LEFT GTK_POS_RIGHT GTK_POS_TOP GTK_POS_BOTTOM

Если позиция со стороны колеи (т.е. сверху или снизу горизонтального виджета масштабирования), то значение будет передвигаться вдоль колеи за ползунком.

Все предыдущие функции определены в <gtk/gtkscale.h>. Заголовочные файлы GTK widgets автоматически включаются после включения <gtk/gtk.h>.  Вы можете просмотреть заголовочные файлы всех виджетов, которые вас интересуют, чтобы больше узнать об их функциях и особенностях.


<<< Previous

Home

Next >>>

Range Widgets

Up

Common Range Functions