GtkProgressBar
GtkProgressBar — Виджет, визуально отображающий прогресс
Функции
Свойства
Стилизованные свойства
| gint | min-horizontal-bar-height | Чтение / Запись |
| gint | min-horizontal-bar-width | Чтение / Запись |
| gint | min-vertical-bar-height | Чтение / Запись |
| gint | min-vertical-bar-width | Чтение / Запись |
| gint | xspacing | Чтение / Запись |
| gint | yspacing | Чтение / Запись |
Типы и Значения
| struct | GtkProgressBar |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkProgressBar
Реализованные интерфейсы
GtkProgressBar реализует AtkImplementorIface, GtkBuildable и GtkOrientable.
Включения
#include <gtk/gtk.h>
Описание
Компонент GtkProgressBar обычно используется для отображения хода выполнения длительной операции. Он визуально указывает на то, что обработка выполняется.
Когда приложение может определить объём работы (например, чтение фиксированного количества байтов из файла) и отслеживать её ход, оно может использовать GtkProgressBar в режиме проценты, и пользователь увидит растущую полосу, отображающую процент завершённой работы. В этом режиме приложение должно периодически вызывать gtk_progress_bar_set_fraction() для обновления полосы прогресса.
Когда приложение не может точно определить объём работы, оно может использовать GtkProgressBar в режиме активности, который показывает активность, перемещая блок вперёд-назад в области прогресса. В этом режиме приложение должно периодически вызывать gtk_progress_bar_pulse() для обновления полосы прогресса.
Существует значительная гибкость для управления отображением GtkProgressBar. Предусмотрены функции для управления ориентацией полосы, можно отображать дополнительный текст вместе с полосой, а также устанавливать шаг, используемый в режиме активности.
CSS узлы
progressbar[.osd]
╰── trough
├── [text]
╰── progress[.pulse]GtkProgressBar имеет основной CSS узел с именем progressbar и подузлы с именами text, trough и progress. Под узел text присутствует только если отображается текст. Под узел progress добавляется класс стиля .pulse, когда используется режим активности. К нему добавляются классы стиля .left, .right, .top или .bottom, когда прогресс «дотрагивается» соответствующего конца GtkProgressBar. Класс .osd на узле progressbar используется для наложений, как, например, при отображении прогресса загрузки страницы в Epiphany.
Функции
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,gdouble fraction);
Заставляет полосу прогресса «заполняться» указанной долей. Доля должна быть в интервале от 0,0 до 1,0 включительно.
Параметры
pbar | ||
fraction | доля завершённой части задачи |
gtk_progress_bar_get_fraction ()
gdouble
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 | отображать ли наложенный текст |
С: 3.0
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, если текст отображается в полосе прогресса
С: 3.0
gtk_progress_bar_set-text ()
void gtk_progress_bar_set_text (GtkProgressBar *pbar,const gchar *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 gchar *
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 |
С: 2.6
gtk_progress_bar_get_ellipsize ()
PangoEllipsizeMode
gtk_progress_bar_get_ellipsize (GtkProgressBar *pbar); Возвращает позицию усечения полосы прогресса. См. gtk_progress_bar_set_ellipsize().
Параметры
pbar |
Возвращает
С: 2.6
gtk_progress_bar_set_pulse_step ()
void gtk_progress_bar_set_pulse_step (GtkProgressBar *pbar,gdouble fraction);
Устанавливает долю общей длины полосы прогресса, на которую будет смещаться пульсирующий блок при каждом вызове gtk_progress_bar_pulse().
Параметры
pbar | ||
fraction | дробь от 0.0 до 1.0 |
gtk_progress_bar_get_pulse_step ()
gdouble
gtk_progress_bar_get_pulse_step (GtkProgressBar *pbar); Возвращает шаг пульсации, установленный с помощью gtk_progress_bar_set_pulse_step().
Параметры
pbar |
Возвращает
дробь от 0.0 до 1.0
Типы и значения
struct GtkProgressBar
struct GtkProgressBar;
Подробности свойств
Свойство “ellipsize”
“ellipsize” PangoEllipsizeMode
Предпочтительное место для усечения строки, если полоса прогресса не имеет достаточно места для отображения всей строки, заданное как PangoEllipsizeMode.
Обратите внимание, что установка этого свойства на значение, отличное от PANGO_ELLIPSIZE_NONE, приводит к тому, что полоса прогресса запрашивает только достаточно места для отображения многоточия ("..."). Другой способ установить ширину полосы прогресса — gtk_widget_set_size_request().
Флаги: Чтение / Запись
Значение по умолчанию: PANGO_ELLIPSIZE_NONE
С: 2.6
Свойство “fraction”
“fraction” gdouble
Доля завершённой части работы.
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0
Свойство “inverted”
“inverted” gboolean
Инвертировать направление роста полосы прогресса.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “pulse-step”
“pulse-step” gdouble
Доля общего прогресса, на которую перемещается пульсирующий блок при пульсации.
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.1
Свойство “show-text”
“show-text” gboolean
Устанавливает, будет ли полоса прогресса отображать текст дополнительно к самой полосе. Отображаемый текст — это либо значение свойства “текст”, либо, если это NULL, значение свойства “доля” в процентах.
Чтобы создать полосу прогресса, оформленную и размером, подходящей для отображения текста (даже если фактический текст пустой), установите “отображать-текст” в TRUE и “текст” в пустую строку (не NULL).
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
С: 3.0
Свойство “text”
“text” gchar *
Текст, отображаемый в полосе прогресса.
Флаги: Чтение / Запись
Значение по умолчанию: NULL
Подробности свойств стиля
Свойство стиля “min-horizontal-bar-height”
“min-horizontal-bar-height” gint
Минимальная высота полосы прогресса по горизонтали.
GtkProgressBar:min-horizontal-bar-height устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте стандартное CSS-свойство min-height.
Флаги: Чтение / Запись
Допустимые значения: >= 1
Значение по умолчанию: 6
С: 2.14
Свойство стиля “min-horizontal-bar-width”
“min-horizontal-bar-width” gint
Минимальная ширина полосы прогресса по горизонтали.
GtkProgressBar:min-horizontal-bar-width устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте стандартное CSS-свойство min-width.
Флаги: Чтение / Запись
Допустимые значения: >= 1
Значение по умолчанию: 150
С: 2.14
Свойство стиля “min-vertical-bar-height”
“min-vertical-bar-height” gint
Минимальная высота полосы прогресса по вертикали.
GtkProgressBar:min-vertical-bar-height устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте стандартное CSS-свойство min-height.
Флаги: Чтение / Запись
Допустимые значения: >= 1
Значение по умолчанию: 80
С: 2.14
Свойство стиля “min-vertical-bar-width”
“min-vertical-bar-width” gint
Минимальная ширина полосы прогресса по вертикали.
GtkProgressBar:min-vertical-bar-width устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте стандартное CSS-свойство min-width.
Флаги: Чтение / Запись
Допустимые значения: >= 1
Значение по умолчанию: 7
С: 2.14
Свойство стиля “xspacing”
“xspacing” gint
Дополнительный отступ, применяемый к ширине полосы прогресса.
GtkProgressBar:xspacing устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте стандартные CSS-свойства padding и margins; значение этого свойства стиля игнорируется.
Флаги: Чтение / Запись
Допустимые значения: >= 0
Значение по умолчанию: 2
Свойство стиля “yspacing”
“yspacing” gint
Дополнительный отступ, применяемый к высоте полосы прогресса.
GtkProgressBar:yspacing устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте стандартные CSS-свойства padding и margins; значение этого свойства стиля игнорируется.
Флаги: Чтение / Запись
Допустимые значения: >= 0
Значение по умолчанию: 2
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkProgressBar.html