GTK+ Reference Manual |
||||
---|---|---|---|---|
GtkProgressBarGtkProgressBar Виджет визуально отображающий процесс выполнения |
#include <gtk/gtk.h>
GtkProgressBar;
GtkWidget* gtk_progress_bar_new (void);
void gtk_progress_bar_pulse (GtkProgressBar *pbar);
void gtk_progress_bar_set_text (GtkProgressBar *pbar,
const gchar *text);
void gtk_progress_bar_set_fraction (GtkProgressBar *pbar,
gdouble fraction);
void gtk_progress_bar_set_pulse_step (GtkProgressBar *pbar,
gdouble fraction);
void gtk_progress_bar_set_orientation
(GtkProgressBar *pbar,
GtkProgressBarOrientation orientation);
void gtk_progress_bar_set_ellipsize (GtkProgressBar *pbar,
PangoEllipsizeMode mode);
enum GtkProgressBarOrientation;
const gchar* gtk_progress_bar_get_text (GtkProgressBar *pbar);
gdouble gtk_progress_bar_get_fraction (GtkProgressBar *pbar);
gdouble gtk_progress_bar_get_pulse_step (GtkProgressBar *pbar);
GtkProgressBarOrientation gtk_progress_bar_get_orientation
(GtkProgressBar *pbar);
PangoEllipsizeMode gtk_progress_bar_get_ellipsize
(GtkProgressBar *pbar);
GtkWidget* gtk_progress_bar_new_with_adjustment
(GtkAdjustment *adjustment);
void gtk_progress_bar_set_bar_style (GtkProgressBar *pbar,
GtkProgressBarStyle style);
enum GtkProgressBarStyle;
void gtk_progress_bar_set_discrete_blocks
(GtkProgressBar *pbar,
guint blocks);
void gtk_progress_bar_set_activity_step
(GtkProgressBar *pbar,
guint step);
void gtk_progress_bar_set_activity_blocks
(GtkProgressBar *pbar,
guint blocks);
void gtk_progress_bar_update (GtkProgressBar *pbar,
gdouble percentage);
GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkWidget
+----GtkProgress
+----GtkProgressBar
GtkProgressBar осуществляет AtkImplementorIface.
"activity-blocks" guint : Read / Write
"activity-step" guint : Read / Write
"adjustment" GtkAdjustment : Read / Write
"bar-style" GtkProgressBarStyle : Read / Write
"discrete-blocks" guint : Read / Write
"ellipsize" PangoEllipsizeMode : Read / Write
"fraction" gdouble : Read / Write
"orientation" GtkProgressBarOrientation : Read / Write
"pulse-step" gdouble : Read / Write
"text" gchararray : Read / Write
Обычно GtkProgressBar используется для визуализации выполнения длительных операций. Он является доказательством того что процес продвигается. GtkProgressBar может быть использован в двух разных режимах: процентный режим и активный режим.
Когда приложение может определить количество выполняемой работы (например чтение фиксированного количества байт из файла) и может контролировать продвижение, то GtkProgressBar может использоваться в режиме процентов и пользователь может видеть растущую шкалу указывающую процент выполнения до окончания работы. В этом режиме приложению необходимо периодически вызывать gtk_progress_bar_set_fraction() для обновления шкалы выплнения.
Когда приложение не имеет возможности определить количество выполняемой работы, то можно использовать GtkProgressBar в активном режиме, который отображает активный блок передвигающийся из конца в конец шкалы выполнения. В этом режиме приложение должно периодически вызывать gtk_progress_bar_pulse() для обновления шкалы выполнения.
Существует довольно мало способов управления внешним видом GtkProgressBar. Функции обеспечивающие управление ориентацией шкалы, выборочное отображение текста в процессе выполнения на шкале и размер шага используемый в активном режиме.
GtkProgressBar/GtkProgress API в GTK 1.2 был раздутый, неудобно запутанный и тяжелый в использовании. Поэтому GtkProgress полностью устарел, а GtkProgressBar API сокращён до следующих 10 функций: gtk_progress_bar_new(), gtk_progress_bar_pulse(), gtk_progress_bar_set_text(), gtk_progress_bar_set_fraction(), gtk_progress_bar_set_pulse_step(), gtk_progress_bar_set_orientation(), gtk_progress_bar_get_text(), gtk_progress_bar_get_fraction(), gtk_progress_bar_get_pulse_step(), gtk_progress_bar_get_orientation(). Они сгруппированы в начале этого раздела, сопровождаемые большим блоком устаревших функций совместимости с версией 1.2.
typedef struct _GtkProgressBar GtkProgressBar;Структура GtkProgressBar-struct содержит только закрытые данные и доступ к ней должен осуществляеться посредством функций приведенных ниже.
gtk_progress_bar_new ()
GtkWidget* gtk_progress_bar_new (void);Создаёт новый GtkProgressBar.
Возвращает : |
void gtk_progress_bar_pulse (GtkProgressBar *pbar);Отображает некоторый процесс выполнения, но не определяя объём выполнения. Вводит шкалу выполнения в "активный режим". Каждый вызов gtk_progress_bar_pulse() заставляет блок немного перемещаться (количество перемещений за импульс определяется с помощью gtk_progress_bar_set_pulse_step()).
pbar : |
void gtk_progress_bar_set_text (GtkProgressBar *pbar,
const gchar *text);
Помещает полученный text на шкалу выполнения.
pbar : |
|
text : |
строка UTF-8 |
void gtk_progress_bar_set_fraction (GtkProgressBar *pbar,
gdouble fraction);
Заполняет шкалу выполнения на полученную долю (fraction) шкалы. Доля(fraction) должна быть между 0.0 и 1.0 включительно.
pbar : |
|
fraction : |
Доля (fraction) выполненного процесса |
void gtk_progress_bar_set_pulse_step (GtkProgressBar *pbar,
gdouble fraction);
Устанавливает область от полной длины шкалы выполнения перемещаемым блоком для каждого вызова gtk_progress_bar_pulse().
pbar : |
|
fraction : |
Область между 0.0 и 1.0 |
void gtk_progress_bar_set_orientation
(GtkProgressBar *pbar,
GtkProgressBarOrientation orientation);
Переключает ориентацию шкалы выполнения (слева-направо или справа-налево, сверху вниз или снизу вверх).
pbar : |
|
orientation : |
Направление шкалы выполнения |
void gtk_progress_bar_set_ellipsize (GtkProgressBar *pbar,
PangoEllipsizeMode mode);
Устанавливает режим используемый для замещения (добавляет замещение: "...") текста если не достаточно пространства для отображения всей строки.
pbar : |
|
mode : |
Начиная с версии 2.6
typedef enum
{
GTK_PROGRESS_LEFT_TO_RIGHT,
GTK_PROGRESS_RIGHT_TO_LEFT,
GTK_PROGRESS_BOTTOM_TO_TOP,
GTK_PROGRESS_TOP_TO_BOTTOM
} GtkProgressBarOrientation;
Перечисление возможных направлений увеличения шкалы выполнения.
GTK_PROGRESS_LEFT_TO_RIGHT |
Горизонтальное увеличение слева-направо. |
GTK_PROGRESS_RIGHT_TO_LEFT |
Горизонтальное увеличение справа-налево. |
GTK_PROGRESS_BOTTOM_TO_TOP |
Вертикальное увеличение снизу вверх. |
GTK_PROGRESS_TOP_TO_BOTTOM |
Вертикальное увеличение сверху вниз. |
const gchar* gtk_progress_bar_get_text (GtkProgressBar *pbar);Находит текст отображаемый на шкале выполнения, если есть, иначе возвращает NULL. Возвращаемое значение является ссылкой на текст, а не его копией, так как будет недопустимо если вы измените текст в шкале выполнения.
pbar : |
|
Возвращает : |
текст, или NULL; строкой владеет виджет и она не должна изменяться или освобождаться. |
gdouble gtk_progress_bar_get_fraction (GtkProgressBar *pbar);Возвращает текущую долю выполненного задания.
pbar : |
|
Возвращает : |
Доля в пределах от 0.0 до 1.0 |
gdouble gtk_progress_bar_get_pulse_step (GtkProgressBar *pbar);Находит шаг пульсации установленный с помощью gtk_progress_bar_set_pulse_step()
pbar : |
|
Возвращает : |
Доля в пределах от 0.0 до 1.0 |
GtkProgressBarOrientation gtk_progress_bar_get_orientation
(GtkProgressBar *pbar);
Находит текущеме направление шкалы выполнения.
pbar : |
|
Возвращает : |
Направление шкалы выполнения |
PangoEllipsizeMode gtk_progress_bar_get_ellipsize
(GtkProgressBar *pbar);
Возвращает позицию замещения шкалы выполнения. Смотрите gtk_progress_bar_set_ellipsize().
pbar : |
|
Возвращает : |
Начиная с версии 2.6
GtkWidget* gtk_progress_bar_new_with_adjustment
(GtkAdjustment *adjustment);
gtk_progress_bar_new_with_adjustment устарела и не должна использоваться во вновь создаваемом коде.
Создаёт новый GtkProgressBar с ассоциированным GtkAdjustment.
adjustment : |
|
Возвращает : |
void gtk_progress_bar_set_bar_style (GtkProgressBar *pbar,
GtkProgressBarStyle style);
gtk_progress_bar_set_bar_style устарела и не должна использоваться во вновь создаваемом коде.
Устанавливает стиль GtkProgressBar. По умолчанию стиль GTK_PROGRESS_CONTINUOUS.
pbar : |
|
style : |
GtkProgressBarStyle значение указывающее желаемый стиль. |
typedef enum
{
GTK_PROGRESS_CONTINUOUS,
GTK_PROGRESS_DISCRETE
} GtkProgressBarStyle;
Перечисление представляющее стиль отрисовки шкалы выполнения.
GTK_PROGRESS_CONTINUOUS |
Шкала выполнения увеличивается гладким, непрерывным способом. |
GTK_PROGRESS_DISCRETE |
Шкала выполнения увеличивается отдельными блоками. |
void gtk_progress_bar_set_discrete_blocks
(GtkProgressBar *pbar,
guint blocks);
gtk_progress_bar_set_discrete_blocks устарела и не должна использоваться во вновь создаваемом коде.
Устанавливает количество блоков из которого состоит шкала выполнения при стиле GTK_PROGRESS_DISCRETE.
pbar : |
|
blocks : |
Количество блоков составляющих шкалу выполнения. |
void gtk_progress_bar_set_activity_step
(GtkProgressBar *pbar,
guint step);
gtk_progress_bar_set_activity_step устарела и не должна использоваться во вновь создаваемом коде.
Устанавливает значение шага когда шкала выполнения находится в активном режиме. Шаг количество на которое увеличивается шкала при каждом повторении.
pbar : |
|
step : |
Количество увеличения в активном режиме. |
void gtk_progress_bar_set_activity_blocks
(GtkProgressBar *pbar,
guint blocks);
gtk_progress_bar_set_activity_blocks устарела и не должна использоваться во вновь создаваемом коде.
Устанавливает количество блоков используемых в активном режиме шкалы выполнения. Большее число делает видимый блок меньше.
pbar : |
|
blocks : |
Число блоков используемое в шкале выполнения. |
void gtk_progress_bar_update (GtkProgressBar *pbar,
gdouble percentage);
gtk_progress_bar_update устарела и не должна использоваться во вновь создаваемом коде.
Эта функция устарела. Пожалуйста используйте gtk_progress_set_value() или gtk_progress_set_percentage() вместо нее.
pbar : |
|
percentage : |
Новое значение процентного выполнения. |
"activity-blocks" guint : Read / WriteЧисло блоков которым заполняется шкала в активном режиме (Устарело).
Допустимые значения: >= 2
Значение по умолчанию: 5
Свойство "activity-step"
"activity-step" guint : Read / WriteУвеличение используемое при каждом повторении в активном режиме (Устарело).
Значение по умолчанию: 3
Свойство "adjustment"
"adjustment" GtkAdjustment : Read / WriteGtkAdjustment подключённый к шкале выполнения (Устарело).
Свойство "bar-style"
"bar-style" GtkProgressBarStyle : Read / WriteКонкретизирует визуальный стиль шкалы в процентном режиме (Устарело).
Значение по умолчанию: GTK_PROGRESS_CONTINUOUS
Свойство "discrete-blocks"
"discrete-blocks" guint : Read / WriteЧисло раздельных блоков в шкале выполнения (когда отображается в раздельном стиле).
Допустимые значения: >= 2
Значение по умолчанию: 10
Свойство "ellipsize"
"ellipsize" PangoEllipsizeMode : Read / WriteПредпочтительное место для замены строки, если шкала выполнения не в состоянии отобразить всю строку определенную как PangoEllisizeMode.
Помните что установка этого свойства в значение отличное от PANGO_ELLIPSIZE_NONE имеет побочный эффект шкалы выполнения требующий достаточного пространства только для отображения заменителя строки "...". Другой способ для установки ширины шкалы выполнения - gtk_widget_set_size_request().
Значение по умолчанию: PANGO_ELLIPSIZE_NONE
Начиная с версии 2.6
Свойство "fraction"
"fraction" gdouble : Read / WriteДоля от полного выполнения процесса.
Допустимые значения: [0,1]
Значение по умолчанию: 0
Свойство "orientation"
"orientation" GtkProgressBarOrientation : Read / WriteНаправление увеличения шкалы выполнения.
Значение по умолчанию: GTK_PROGRESS_LEFT_TO_RIGHT
Свойство "pulse-step"
"pulse-step" gdouble : Read / WriteДоля от полного выполнения процесса для пульсирующего перемещения в пределах шкалы.
Допустимые значения: [0,1]
Значение по умолчанию: 0.1
Свойство "text"
"text" gchararray : Read / WriteТекст отображаемый в шкале выполнения.
Значение по умолчанию: "%P %%"