Spec-Zone.ru › GTK 4.0

GtkProgressBar

GtkProgressBar — Виджет, визуально отображающий прогресс

Функции

GtkWidget * gtk_progress_bar_new ()
void gtk_progress_bar_pulse ()
void gtk_progress_bar_set_fraction ()
double gtk_progress_bar_get_fraction ()
void gtk_progress_bar_set_inverted ()
gboolean gtk_progress_bar_get_inverted ()
void gtk_progress_bar_set_show_text ()
gboolean gtk_progress_bar_get_show_text ()
void gtk_progress_bar_set_text ()
const char * gtk_progress_bar_get_text ()
void gtk_progress_bar_set_ellipsize ()
PangoEllipsizeMode gtk_progress_bar_get_ellipsize ()
void gtk_progress_bar_set_pulse_step ()
double gtk_progress_bar_get_pulse_step ()

Свойства

PangoEllipsizeMode ellipsize Чтение/Запись
double fraction Чтение/Запись
gboolean inverted Чтение/Запись
double pulse-step Чтение/Запись
gboolean show-text Чтение/Запись
char * text Чтение/Запись

Типы и значения

GtkProgressBar

Иерархия объектов

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkProgressBar

Реализованные интерфейсы

GtkProgressBar реализует GtkAccessible, GtkBuildable, GtkConstraintTarget и GtkOrientable.

Файлы заголовков

#include <gtk/gtk.h>

Описание

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

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

Когда приложение не имеет точного способа узнать объем работы, оно может использовать GtkProgressBar в режиме активности, который показывает активность, перемещая блок вперед и назад в области прогресса. В этом режиме приложение должно периодически вызывать gtk_progress_bar_pulse() для обновления полосы прогресса.

Есть довольно большая гибкость для управления внешним видом GtkProgressBar. Предоставлены функции для управления ориентацией полосы, можно отображать необязательный текст вместе с полосой, и можно установить шаг, используемый в режиме активности.

CSS-узлы

progressbar[.osd]
├── [text]
╰── trough[.empty][.full]
    ╰── progress[.pulse]

GtkProgressBar имеет главный CSS-узел с именем progressbar и подузлы с именами text и trough, последний из которых имеет подузел с именем progress. Под-узел text присутствует только если текст отображается. Узел progress имеет класс стиля .pulse, когда находится в режиме активности. Он получает добавленные классы стиля .left, .right, .top или .bottom, когда прогресс «касается» соответствующего конца GtkProgressBar. Класс .osd на узле progressbar используется для наложений, таких как наложение для отображения прогресса загрузки страницы в Epiphany.

Доступность

GtkProgressBar использует роль GTK_ACCESSIBLE_ROLE_PROGRESS_BAR.

Функции

gtk_progress_bar_new ()

GtkWidget *
gtk_progress_bar_new (void);

Создаёт новую GtkProgressBar.

Возвращает

GtkProgressBar.

gtk_progress_bar_pulse ()

void
gtk_progress_bar_pulse (GtkProgressBar *pbar);

Указывает, что определённый прогресс достигнут, но его значение неизвестно. Приводит к переходу полосы прогресса в режим «активности», где блок перемещается вперёд-назад. Каждый вызов gtk_progress_bar_pulse() перемещает блок на немного (величина перемещения за один импульс определяется параметром gtk_progress_bar_set_pulse_step()).

Параметры

pbar

a GtkProgressBar

gtk_progress_bar_set_fraction ()

void
gtk_progress_bar_set_fraction (GtkProgressBar *pbar,
                               double fraction);

Заставляет полосу прогресса «заполнить» заданную долю. Доля должна быть в диапазоне от 0.0 до 1.0 включительно.

Параметры

pbar

a GtkProgressBar

fraction

доля задачи, которая выполнена

gtk_progress_bar_get_fraction ()

double
gtk_progress_bar_get_fraction (GtkProgressBar *pbar);

Возвращает текущую долю задачи, которая выполнена.

Параметры

pbar

a GtkProgressBar

Возвращает

доля от 0.0 до 1.0

gtk_progress_bar_set_inverted ()

void
gtk_progress_bar_set_inverted (GtkProgressBar *pbar,
                               gboolean inverted);

Полосы прогресса обычно растут сверху вниз или слева направо. Перевернутые полосы прогресса растут в противоположном направлении.

Параметры

pbar

a GtkProgressBar

inverted

TRUE для переворота полосы прогресса

gtk_progress_bar_get_inverted ()

gboolean
gtk_progress_bar_get_inverted (GtkProgressBar *pbar);

Получает значение, установленное с помощью gtk_progress_bar_set_inverted().

Параметры

pbar

a GtkProgressBar

Возвращает

TRUE если полоса прогресса перевёрнута

gtk_progress_bar_set_show_text ()

void
gtk_progress_bar_set_show_text (GtkProgressBar *pbar,
                                gboolean show_text);

Устанавливает, будет ли отображаться текст рядом с полосой прогресса. Отображаемый текст — либо значение свойства “text”, либо, если оно NULL, значение свойства “fraction” в процентах.

Чтобы сделать полосу прогресса стилизованной и подходящей по размеру для отображения текста (даже если текст пуст), установите свойство “show-text” в TRUE и свойство “text” в пустую строку (не NULL).

Параметры

pbar

a GtkProgressBar

show_text

отображать ли текст

gtk_progress_bar_get_show_text ()

gboolean
gtk_progress_bar_get_show_text (GtkProgressBar *pbar);

Получает значение свойства “show-text”. См. gtk_progress_bar_set_show_text().

Параметры

pbar

a GtkProgressBar

Возвращает

TRUE если текст отображается в полосе прогресса

gtk_progress_bar_set_text ()

void
gtk_progress_bar_set_text (GtkProgressBar *pbar,
                           const char *text);

Заставляет указанный text отображаться рядом с полосой прогресса.

Если text — NULL, и “show-text” — TRUE, будет отображаться текущее значение “fraction” в процентах.

Если text — не NULL, и “show-text” — TRUE, будет отображаться текст. В этом случае не будет отображаться процент прогресса. Если text — пустая строка, полоса прогресса всё равно будет стилизована и подобрана по размеру для отображения текста, при условии, что “show-text” — TRUE.

Параметры

pbar

a GtkProgressBar

text

строка UTF-8 или NULL.

[allow-none]

gtk_progress_bar_get_text ()

const char *
gtk_progress_bar_get_text (GtkProgressBar *pbar);

Возвращает отображаемый текст полосы прогресса, если он есть, иначе NULL. Возвращаемое значение — ссылка на текст, а не его копия, поэтому оно станет недоступным, если вы измените текст в полосе прогресса.

Параметры

pbar

a GtkProgressBar

Возвращает

текст или NULL; эта строка принадлежит виджету и не должна изменяться или освобождаться.

[nullable]

gtk_progress_bar_set_ellipsize ()

void
gtk_progress_bar_set_ellipsize (GtkProgressBar *pbar,
                                PangoEllipsizeMode mode);

Устанавливает режим, используемый для усечения (добавления многоточия: "...") текста, если нет достаточно места для отображения всей строки.

Параметры

pbar

a GtkProgressBar

mode

a PangoEllipsizeMode

gtk_progress_bar_get_ellipsize ()

PangoEllipsizeMode
gtk_progress_bar_get_ellipsize (GtkProgressBar *pbar);

Возвращает позицию усечения полосы прогресса. См. gtk_progress_bar_set_ellipsize().

Параметры

pbar

a GtkProgressBar

Возвращает

PangoEllipsizeMode

gtk_progress_bar_set_pulse_step ()

void
gtk_progress_bar_set_pulse_step (GtkProgressBar *pbar,
                                 double fraction);

Устанавливает долю от общей длины полосы прогресса, на которую смещается прыгающий блок при каждом вызове gtk_progress_bar_pulse().

Параметры

pbar

a GtkProgressBar

fraction

дробное значение от 0.0 до 1.0

gtk_progress_bar_get_pulse_step ()

double
gtk_progress_bar_get_pulse_step (GtkProgressBar *pbar);

Возвращает значение шага пульсации, установленное с помощью gtk_progress_bar_set_pulse_step().

Параметры

pbar

a GtkProgressBar

Возвращаемое значение

дробное значение от 0.0 до 1.0

Типы и значения

GtkProgressBar

typedef struct _GtkProgressBar GtkProgressBar;

Подробное описание свойств

Свойство “ellipsize”

  “ellipsize”                PangoEllipsizeMode

Предпочтительное место для обрезания строки, если полоса прогресса не имеет достаточно места для отображения всей строки, задается как PangoEllipsizeMode.

Обратите внимание, что установка этого свойства на значение, отличное от PANGO_ELLIPSIZE_NONE, влечет за собой побочный эффект — полоса прогресса запрашивает только достаточное место для отображения многоточия ("..."). Другой способ задать ширину полосы прогресса — gtk_widget_set_size_request().

Владелец: GtkProgressBar

Флаги: Чтение / Запись

Значение по умолчанию: PANGO_ELLIPSIZE_NONE

Свойство “fraction”

  “fraction”                 double

Доля завершённой работы.

Владелец: GtkProgressBar

Флаги: Чтение / Запись

Допустимые значения: [0,1]

Значение по умолчанию: 0

Свойство “inverted”

  “inverted”                 gboolean

Инвертировать направление роста полосы прогресса.

Владелец: GtkProgressBar

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “pulse-step”

  “pulse-step”               double

Доля от общего прогресса, на которую смещается прыгающий блок при пульсации.

Владелец: GtkProgressBar

Флаги: Чтение / Запись

Допустимые значения: [0,1]

Значение по умолчанию: 0.1

Свойство “show-text”

  “show-text”                gboolean

Устанавливает, будет ли полоса прогресса отображать текст в дополнение к самой полосе. Отображаемый текст — это либо значение свойства “text”, либо, если оно NULL, значение свойства “fraction” в процентах.

Чтобы сделать полосу прогресса, подходящую для отображения текста (даже если сам текст пустой), установите “show-text” в TRUE и “text” в пустую строку (не NULL).

Владелец: GtkProgressBar

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “text”

  “text”                     char *

Текст, отображаемый в полосе прогресса.

Владелец: GtkProgressBar

Флаги: Чтение / Запись

Значение по умолчанию: NULL

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkProgressBar.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API