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 | Чтение/Запись |
Типы и значения
Иерархия объектов
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.
Возвращает
gtk_progress_bar_pulse ()
void
gtk_progress_bar_pulse (GtkProgressBar *pbar); Указывает, что определённый прогресс достигнут, но его значение неизвестно. Приводит к переходу полосы прогресса в режим «активности», где блок перемещается вперёд-назад. Каждый вызов gtk_progress_bar_pulse() перемещает блок на немного (величина перемещения за один импульс определяется параметром gtk_progress_bar_set_pulse_step()).
Параметры
pbar |
gtk_progress_bar_set_fraction ()
void gtk_progress_bar_set_fraction (GtkProgressBar *pbar,double fraction);
Заставляет полосу прогресса «заполнить» заданную долю. Доля должна быть в диапазоне от 0.0 до 1.0 включительно.
Параметры
pbar | ||
fraction | доля задачи, которая выполнена |
gtk_progress_bar_get_fraction ()
double
gtk_progress_bar_get_fraction (GtkProgressBar *pbar); Возвращает текущую долю задачи, которая выполнена.
Параметры
pbar |
Возвращает
доля от 0.0 до 1.0
gtk_progress_bar_set_inverted ()
void gtk_progress_bar_set_inverted (GtkProgressBar *pbar,gboolean inverted);
Полосы прогресса обычно растут сверху вниз или слева направо. Перевернутые полосы прогресса растут в противоположном направлении.
Параметры
pbar | ||
inverted |
|
gtk_progress_bar_get_inverted ()
gboolean
gtk_progress_bar_get_inverted (GtkProgressBar *pbar); Получает значение, установленное с помощью gtk_progress_bar_set_inverted().
Параметры
pbar |
Возвращает
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 | ||
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 |
Возвращает
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 | ||
text | строка UTF-8 или | [allow-none] |
gtk_progress_bar_get_text ()
const char *
gtk_progress_bar_get_text (GtkProgressBar *pbar); Возвращает отображаемый текст полосы прогресса, если он есть, иначе NULL. Возвращаемое значение — ссылка на текст, а не его копия, поэтому оно станет недоступным, если вы измените текст в полосе прогресса.
Параметры
pbar |
Возвращает
текст или NULL; эта строка принадлежит виджету и не должна изменяться или освобождаться.
[nullable]
gtk_progress_bar_set_ellipsize ()
void gtk_progress_bar_set_ellipsize (GtkProgressBar *pbar,PangoEllipsizeMode mode);
Устанавливает режим, используемый для усечения (добавления многоточия: "...") текста, если нет достаточно места для отображения всей строки.
Параметры
pbar | ||
mode |
gtk_progress_bar_get_ellipsize ()
PangoEllipsizeMode
gtk_progress_bar_get_ellipsize (GtkProgressBar *pbar); Возвращает позицию усечения полосы прогресса. См. gtk_progress_bar_set_ellipsize().
Параметры
pbar |
Возвращает
gtk_progress_bar_set_pulse_step ()
void gtk_progress_bar_set_pulse_step (GtkProgressBar *pbar,double fraction);
Устанавливает долю от общей длины полосы прогресса, на которую смещается прыгающий блок при каждом вызове gtk_progress_bar_pulse().
Параметры
pbar | ||
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 |
Возвращаемое значение
дробное значение от 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