The OpenNET Project
 
Поиск (ключи):  ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
ССЫЛКИ НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

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




Подпишись на Linux Format и получи один из 3 ценных призов!

Началась подписка на журнал Linux Format на 2010 год. Спешите оформить подписку на единственный в России ежемесячный журнал о Linux!

Все, оформившие подписку на печатную версию журнала, получают диск с архивом журнала Linux Format за 2005-2009г. в подарок. Также в подарок вы получаете именную электронную версию в формате PDF. Теперь вы можете приступить к чтению журнала сразу в момент выхода свежего номера, не дожидаясь, пока вам доставят бумажную версию.

Кроме того, все, оформившие подписку на первую половину или весь 2010 год в интернет-магазине ГНУ/Линуксцентра, автоматически становятся участниками розыгрыша ценных призов:


  Закладки на сайте
  Проследить за страницей
Created 1996-2010 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList