GtkLevelBar
GtkLevelBar — Слайдер, который можно использовать в качестве индикатора уровня
Функции
| GtkWidget * | gtk_level_bar_new () |
| GtkWidget * | gtk_level_bar_new_for_interval () |
| void | gtk_level_bar_set_mode () |
| GtkLevelBarMode | gtk_level_bar_get_mode () |
| void | gtk_level_bar_set_value () |
| gdouble | gtk_level_bar_get_value () |
| void | gtk_level_bar_set_min_value () |
| gdouble | gtk_level_bar_get_min_value () |
| void | gtk_level_bar_set_max_value () |
| gdouble | gtk_level_bar_get_max_value () |
| void | gtk_level_bar_set_inverted () |
| gboolean | gtk_level_bar_get_inverted () |
| void | gtk_level_bar_add_offset_value () |
| void | gtk_level_bar_remove_offset_value () |
| gboolean | gtk_level_bar_get_offset_value () |
Свойства
Стилизованные свойства
| int | min-block-height | Чтение / Запись |
| int | min-block-width | Чтение / Запись |
Сигналы
| void | offset-changed | С деталями |
Типы и значения
| #define | GTK_LEVEL_BAR_OFFSET_LOW |
| #define | GTK_LEVEL_BAR_OFFSET_HIGH |
| #define | GTK_LEVEL_BAR_OFFSET_FULL |
| перечисление | GtkLevelBarMode |
| структура | GtkLevelBar |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkLevelBar
Реализованные интерфейсы
GtkLevelBar реализует AtkImplementorIface, GtkBuildable и GtkOrientable.
Включения
#include <gtk/gtk.h>
Описание
Виджет GtkLevelBar представляет собой полоску, которая может использоваться для отображения уровня. Типичные примеры использования — отображение силы пароля или уровня заряда батареи.
Для установки текущего значения используйте gtk_level_bar_set_value(), а для установки значений смещений, при которых полоска будет считаться находящейся в другом состоянии, используйте gtk_level_bar_add_offset_value(). По умолчанию GTK добавляет несколько смещений в полоску уровня: GTK_LEVEL_BAR_OFFSET_LOW, GTK_LEVEL_BAR_OFFSET_HIGH и GTK_LEVEL_BAR_OFFSET_FULL, с соответствующими значениями 0,25, 0,75 и 1,0 соответственно.
Обратите внимание, что вам необходимо обновить существующие смещения при изменении минимального или максимального значения. GTK+ просто ограничит их новым диапазоном.
Добавление пользовательского смещения на полосе
По умолчанию интервал значений находится между нулем и единицей, но его можно изменить, используя gtk_level_bar_set_min_value() и gtk_level_bar_set_max_value(). Значение всегда будет отображаться пропорционально допустимому интервалу, т.е. значение 15 с заданным интервалом между 10 и 20 эквивалентно значению 0,5 с интервалом между 0 и 1. При использовании GTK_LEVEL_BAR_MODE_DISCRETE, уровень полоски отображается в виде конечного числа отдельных блоков вместо одного. Количество блоков, которые будут отображены, равно количеству единиц, указанных в допустимом интервале.
Например, чтобы создать полосу, отображаемую пятью блоками, достаточно установить минимальное значение в 0 и максимальное значение в 5 после изменения режима индикатора на дискретный.
GtkLevelBar был введён в GTK+ 3.6.
GtkLevelBar как GtkBuildable
Реализация GtkLevelBar интерфейса GtkBuildable поддерживает пользовательский элемент <offsets>, который может содержать любое количество элементов <offset>, каждый из которых должен иметь атрибуты name и value.
Узлы CSS
static GtkWidget *
create_level_bar (void)
{
GtkWidget *widget;
GtkLevelBar *bar;
widget = gtk_level_bar_new ();
bar = GTK_LEVEL_BAR (widget);
// This changes the value of the default low offset
gtk_level_bar_add_offset_value (bar,
GTK_LEVEL_BAR_OFFSET_LOW,
0.10);
// This adds a new offset to the bar; the application will
// be able to change its color CSS like this:
//
// levelbar block.my-offset {
// background-color: magenta;
// border-style: solid;
// border-color: black;
// border-style: 1px;
// }
gtk_level_bar_add_offset_value (bar, "my-offset", 0.60);
return widget;
}GtkLevelBar имеет основной узел CSS с именем levelbar и одним из классов стиля .discrete или .continuous и подузлом с именем trough. Ниже узла trough находится ряд узлов с именем block и классом стиля .filled или .empty. В режиме continuous точно один узел каждого типа, в режиме discrete количество узлов filled и unfilled соответствует отображаемым блокам. Узлы block.filled также получают класс стиля .level-name, соответствующий уровню для текущего значения.
В горизонтальной ориентации узлы всегда располагаются слева направо, независимо от направления текста.
Функции
gtk_level_bar_new ()
GtkWidget *
gtk_level_bar_new (void); Создаёт новый GtkLevelBar.
Возвращает
a GtkLevelBar.
С версии: 3.6
gtk_level_bar_new_for_interval ()
GtkWidget * gtk_level_bar_new_for_interval (gdouble min_value,gdouble max_value);
Вспомогательный конструктор, создающий новый GtkLevelBar для указанного интервала.
Параметры
min_value | положительное значение | |
max_value | положительное значение |
Возвращает
С версии: 3.6
gtk_level_bar_set_mode ()
void gtk_level_bar_set_mode (GtkLevelBar *self,GtkLevelBarMode mode);
Устанавливает значение свойства “mode”.
Параметры
self | ||
mode |
С версии: 3.6
gtk_level_bar_get_mode ()
GtkLevelBarMode
gtk_level_bar_get_mode (GtkLevelBar *self); Возвращает значение свойства “mode”.
Параметры
self |
Возвращает
С версии: 3.6
gtk_level_bar_set_value ()
void gtk_level_bar_set_value (GtkLevelBar *self,gdouble value);
Устанавливает значение свойства “value”.
Параметры
self | ||
value | значение в интервале между “min-value” и “max-value” |
С версии: 3.6
gtk_level_bar_get_value ()
gdouble
gtk_level_bar_get_value (GtkLevelBar *self); Возвращает значение свойства “value”.
Параметры
self |
Возвращает
значение в интервале между “min-value” и “max-value”
С версии: 3.6
gtk_level_bar_set_min_value ()
void gtk_level_bar_set_min_value (GtkLevelBar *self,gdouble value);
Устанавливает значение свойства “min-value”.
Вероятно, вам потребуется обновить существующие смещения уровней после вызова этой функции.
Параметры
self | ||
value | положительное значение |
С версии: 3.6
gtk_level_bar_get_min_value ()
gdouble
gtk_level_bar_get_min_value (GtkLevelBar *self); Возвращает значение свойства “min-value”.
Параметры
self |
Возвращает
положительное значение
С версии: 3.6
gtk_level_bar_set_max_value ()
void gtk_level_bar_set_max_value (GtkLevelBar *self,gdouble value);
Устанавливает значение свойства “max-value”.
Вероятно, вам потребуется обновить существующие смещения уровней после вызова этой функции.
Параметры
self | ||
value | положительное значение |
С версии: 3.6
gtk_level_bar_get_max_value ()
gdouble
gtk_level_bar_get_max_value (GtkLevelBar *self); Возвращает значение свойства “max-value”.
Параметры
self |
Возвращает
положительное значение
С версии: 3.6
gtk_level_bar_set_inverted ()
void gtk_level_bar_set_inverted (GtkLevelBar *self,gboolean inverted);
Устанавливает значение свойства “inverted”.
Параметры
self | ||
inverted |
|
С версии: 3.8
gtk_level_bar_get_inverted ()
gboolean
gtk_level_bar_get_inverted (GtkLevelBar *self); Возвращает значение свойства “inverted”.
Параметры
self |
Возвращает
TRUE if the level bar is inverted
С версии: 3.8
gtk_level_bar_add_offset_value ()
void gtk_level_bar_add_offset_value (GtkLevelBar *self,const gchar *name,gdouble value);
Добавляет новую отметку смещения на self в позиции, заданной value. Когда значение полосы находится в интервале, ограниченном value (или между value и “max-value” в случае, если смещение является последним на полосе), при отрисовке заполнения полосы будет применено стилевое свойство level-name. Если уже существует другая отметка смещения с именем name, её значение будет заменено на value.
Параметры
self | объект GtkLevelBar | |
name | имя новой отметки смещения | |
value | значение новой отметки смещения |
С: 3.6
gtk_level_bar_remove_offset_value ()
void gtk_level_bar_remove_offset_value (GtkLevelBar *self,const gchar *name);
Удаляет отметку смещения, ранее добавленную с помощью gtk_level_bar_add_offset_value().
Параметры
self | объект GtkLevelBar | |
name | имя отметки смещения на полосе. | [allow-none] |
С: 3.6
gtk_level_bar_get_offset_value ()
gboolean gtk_level_bar_get_offset_value (GtkLevelBar *self,const gchar *name,gdouble *value);
Извлекает значение, указанное для отметки смещения name в self, возвращая TRUE в случае, если была найдена отметка смещения с именем name.
Параметры
self | объект GtkLevelBar | |
name | имя отметки смещения на полосе. | [allow-none] |
value | место для хранения значения. | [out] |
Возвращает
TRUE если указанная отметка смещения найдена
С: 3.6
Типы и значения
GTK_LEVEL_BAR_OFFSET_LOW
#define GTK_LEVEL_BAR_OFFSET_LOW "low"
Имя, используемое для отметки смещения «минимальное» (low), включённой в GtkLevelBar.
С: 3.6
GTK_LEVEL_BAR_OFFSET_HIGH
#define GTK_LEVEL_BAR_OFFSET_HIGH "high"
Имя, используемое для отметки смещения «максимальное» (high), включённой в GtkLevelBar.
С: 3.6
GTK_LEVEL_BAR_OFFSET_FULL
#define GTK_LEVEL_BAR_OFFSET_FULL "full"
Имя, используемое для отметки смещения «полное» (full), включённой в GtkLevelBar.
С: 3.20
перечисление GtkLevelBarMode
Описывает, как должны отображаться содержимое GtkLevelBar. Обратите внимание, что это перечисление может быть расширено дополнительными режимами в будущем.
Элементы
GTK_LEVEL_BAR_MODE_CONTINUOUS | непрерывный режим полосы | |
GTK_LEVEL_BAR_MODE_DISCRETE | дискретный режим полосы |
С: 3.6
структура GtkLevelBar
struct GtkLevelBar;
Подробные сведения о свойствах
Свойство “inverted”
“inverted” gboolean
Полосы уровня обычно растут сверху вниз или слева направо. Инвертированные полосы уровня растут в противоположном направлении.
Владелец: GtkLevelBar
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
С: 3.8
Свойство “max-value”
“max-value” double
Свойство “max-value” определяет максимальное значение интервала, который может отображаться на полосе.
Владелец: GtkLevelBar
Флаги: Чтение / Запись
Разрешенные значения: >= 0
Значение по умолчанию: 1
С: 3.6
Свойство “min-value”
“min-value” double
Свойство “min-value” определяет минимальное значение интервала, который может отображаться на полосе.
Владелец: GtkLevelBar
Флаги: Чтение / Запись
Разрешенные значения: >= 0
Значение по умолчанию: 0
С: 3.6
Свойство “mode”
“mode” GtkLevelBarMode
Свойство “mode” определяет способ, которым GtkLevelBar интерпретирует свойства значения для отрисовки области заполнения полосы. В частности, когда значение равно GTK_LEVEL_BAR_MODE_CONTINUOUS, GtkLevelBar отрисует один блок, представляющий текущее значение в этой области; когда значение равно GTK_LEVEL_BAR_MODE_DISCRETE, виджет отрисует последовательность отдельных блоков, заполняющих область отрисовки, причем количество блоков будет равно количеству единиц, разделяющих целые части “min-value” и “max-value”.
Владелец: GtkLevelBar
Флаги: Чтение / Запись
Значение по умолчанию: GTK_LEVEL_BAR_MODE_CONTINUOUS
С: 3.6
Подробности свойств стиля
Свойство стиля “min-block-height”
“min-block-height” int
Свойство стиля min-block-height определяет минимальную высоту блоков, заполняющих виджет GtkLevelBar.
GtkLevelBar:min-block-height устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте стандартные свойства CSS min-width/min-height для блоков; значение этого свойства стиля игнорируется.
Владелец: GtkLevelBar
Флаги: Чтение / Запись
Допустимые значения: >= 1
Значение по умолчанию: 3
С версии: 3.6
Свойство стиля “min-block-width”
“min-block-width” int
Свойство стиля min-block-width определяет минимальную ширину блоков, заполняющих виджет GtkLevelBar.
GtkLevelBar:min-block-width устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте стандартные свойства CSS min-width/min-height для блоков; значение этого свойства стиля игнорируется.
Владелец: GtkLevelBar
Флаги: Чтение / Запись
Допустимые значения: >= 1
Значение по умолчанию: 3
С версии: 3.6
Подробности сигналов
Сигнал “offset-changed”
void user_function (GtkLevelBar *self, char *name, gpointer user_data)
Выдается, когда значение смещения на панели меняется в результате вызова gtk_level_bar_add_offset_value().
Сигнал поддерживает подробные подключения; вы можете подключиться к детальному сигналу "changed::x", чтобы получать обратные вызовы только при изменении значения смещения "x".
Параметры
self | ||
name | имя смещения, значение которого изменилось | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Флаги: Подробности
С версии: 3.6
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkLevelBar.html