GtkScale
GtkScale — Виджет ползунка для выбора значения из диапазона
Функции
| GtkWidget * | gtk_scale_new () |
| GtkWidget * | gtk_scale_new_with_range () |
| void | gtk_scale_set_digits () |
| void | gtk_scale_set_draw_value () |
| void | gtk_scale_set_has_origin () |
| void | gtk_scale_set_value_pos () |
| gint | gtk_scale_get_digits () |
| gboolean | gtk_scale_get_draw_value () |
| gboolean | gtk_scale_get_has_origin () |
| GtkPositionType | gtk_scale_get_value_pos () |
| PangoLayout * | gtk_scale_get_layout () |
| void | gtk_scale_get_layout_offsets () |
| void | gtk_scale_add_mark () |
| void | gtk_scale_clear_marks () |
Свойства
| gint | digits | Чтение / Запись |
| gboolean | draw-value | Чтение / Запись |
| gboolean | has-origin | Чтение / Запись |
| GtkPositionType | value-pos | Чтение / Запись |
Стилизованные свойства
| gint | slider-length | Чтение |
| gint | value-spacing | Чтение |
Сигналы
Типы и значения
| struct | GtkScale |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkRange ╰── GtkScale ├── GtkHScale ╰── GtkVScale
Реализованные интерфейсы
GtkScale реализует AtkImplementorIface, GtkBuildable и GtkOrientable.
Подключаемые файлы
#include <gtk/gtk.h>
Описание
GtkScale — это элемент управления ползунком, используемый для выбора числового значения. Для его использования вам, вероятно, нужно изучить методы базового класса GtkRange, помимо методов самого GtkScale. Для установки значения шкалы обычно используется gtk_range_set_value(). Для обнаружения изменений значения обычно используется сигнал “value-changed”.
Обратите внимание, что использование одинаковых верхних и нижних границ для GtkScale (через методы GtkRange) скроет сам ползунок. Это полезно для приложений, которые хотят отобразить неопределенное значение на шкале, не изменяя макета приложения (например, для проигрывателей фильмов или музыки).
GtkScale как GtkBuildable
GtkScale поддерживает пользовательский элемент <marks>, который может содержать несколько элементов <mark>. Атрибуты “value” и “position” имеют то же значение, что и параметры gtk_scale_add_mark() с такими же именами. Если элемент не пуст, его содержимое используется в качестве разметки для отображения на метке. Его можно перевести с помощью обычных атрибутов “translatable” и “context”.
Узлы CSS
GtkScale имеет основной узел CSS с именем scale и подузлом для его содержимого с подузлами, имеющими имена trough и slider.
Основной узел получает добавление класса стиля .fine-tune, когда шкала находится в режиме «тонкой настройки».
Если шкала имеет начало (см. gtk_scale_set_has_origin()), существует поднода с именем highlight под узлом trough, которая используется для отрисовки выделенной части trough.
Если шкала отображает уровень заполнения (см. gtk_range_set_show_fill_level()), существует поднода с именем fill под узлом trough, которая используется для отрисовки заполненной части trough.
Если метки присутствуют, существует узел marks перед или после узла содержимого, под которым каждый mark получает узел с именем mark. Узлы marks получают либо класс стиля .top, либо .bottom.
Узел mark имеет подноду с именем indicator. Если метка содержит текст, у неё также есть поднода с именем label. Когда метка расположена сверху или слева от шкалы, узел label отображается первым, если он присутствует. В противном случае, узел indicator отображается первым.
Функции
gtk_scale_new ()
GtkWidget * gtk_scale_new (GtkOrientation orientation,GtkAdjustment *adjustment);
Создаёт новый GtkScale.
Параметры
orientation | ориентация шкалы. | |
adjustment | GtkAdjustment, определяющий диапазон шкалы, или | [allow-none][nullable] |
Возвращаемое значение
новый GtkScale.
С версии: 3.0
gtk_scale_new_with_range ()
GtkWidget * gtk_scale_new_with_range (GtkOrientation orientation,gdouble min,gdouble max,gdouble step);
Создаёт новый виджет шкалы с заданной ориентацией, позволяющий пользователю ввести число между min и max (включая min и max ) с приращением step. step должно быть ненулевым; это расстояние, на которое перемещается ползунок при использовании клавиш со стрелками для изменения значения шкалы.
Обратите внимание, что способ получения точности лучше всего работает, если step является степенью десяти. Если полученная точность не подходит для ваших нужд, используйте gtk_scale_set_digits() для её коррекции.
Параметры
orientation | ориентация шкалы. | |
min | минимальное значение | |
max | максимальное значение | |
step | шаг приращения (размер отметки), используемый с сочетаниями клавиш |
Возвращаемое значение
новый GtkScale.
С версии: 3.0
gtk_scale_set_digits ()
void gtk_scale_set_digits (GtkScale *scale,gint digits);
Устанавливает количество десятичных знаков, отображаемых в значении. Также вызывает округление значения настройки до этого числа знаков, поэтому полученное значение соответствует тому, что видел пользователь.
Параметры
scale | a GtkScale | |
digits | количество десятичных знаков для отображения, например, использовать 1 для отображения 1.0, 2 для отображения 1.00 и т. д. |
gtk_scale_set_draw_value ()
void gtk_scale_set_draw_value (GtkScale *scale,gboolean draw_value);
Указывает, отображается ли текущее значение в виде строки рядом с ползунком.
gtk_scale_set_has_origin ()
void gtk_scale_set_has_origin (GtkScale *scale,gboolean has_origin);
Если has_origin установлено в TRUE (по умолчанию), шкала выделит часть шкалы между началом (нижней или левой стороной) шкалы и текущим значением.
С версии: 3.4
gtk_scale_set_value_pos ()
void gtk_scale_set_value_pos (GtkScale *scale,GtkPositionType pos);
Устанавливает позицию, в которой отображается текущее значение.
Параметры
scale | a GtkScale | |
pos | позиция, в которой отображается текущее значение |
gtk_scale_get_digits ()
gint
gtk_scale_get_digits (GtkScale *scale); Получает количество десятичных знаков, отображаемых в значении.
Параметры
scale | a GtkScale |
Возвращаемое значение
количество десятичных знаков, которые отображаются
gtk_scale_get_draw_value ()
gboolean
gtk_scale_get_draw_value (GtkScale *scale); Возвращает, отображается ли текущее значение в виде строки рядом с ползунком.
Параметры
scale | a GtkScale |
Возвращаемое значение
отображается ли текущее значение в виде строки
gtk_scale_get_has_origin ()
gboolean
gtk_scale_get_has_origin (GtkScale *scale); Возвращает, имеет ли шкала начало.
Параметры
scale | a GtkScale |
Возвращаемое значение
TRUE, если шкала имеет начало.
С версии: 3.4
gtk_scale_get_value_pos ()
GtkPositionType
gtk_scale_get_value_pos (GtkScale *scale); Получает позицию, в которой отображается текущее значение.
Параметры
scale | a GtkScale |
Возвращаемое значение
позицию, в которой отображается текущее значение
gtk_scale_get_layout ()
PangoLayout *
gtk_scale_get_layout (GtkScale *scale); Получает PangoLayout, используемый для отображения шкалы. Возвращаемый объект принадлежит шкале, поэтому его не нужно освобождать вызывающему коду.
Параметры
scale | A GtkScale |
Возвращаемое значение
PangoLayout для этой шкалы или NULL, если свойство “draw-value” равно FALSE.
[transfer none][nullable]
С версии: 2.4
gtk_scale_get_layout_offsets ()
void gtk_scale_get_layout_offsets (GtkScale *scale,gint *x,gint *y);
Получает координаты, где шкала нарисует PangoLayout, представляющий текст на шкале. Помните, что при использовании функции PangoLayout вам нужно конвертировать в пиксели и из пикселей, используя PANGO_PIXELS() или PANGO_SCALE.
Если свойство “draw-value” равно FALSE, возвращаемые значения не определены.
Параметры
С: 2.4
gtk_scale_add_mark ()
void gtk_scale_add_mark (GtkScale *scale,gdouble value,GtkPositionType position,const gchar *markup);
Добавляет метку в value.
Метка визуально отображается в виде отметки рядом со шкалой, и GTK+ позволяет пользователю точно установить шкалу на значение метки.
Если markup не равно NULL, рядом с отметкой отображается текст.
Чтобы удалить метки со шкалы, используйте gtk_scale_clear_marks().
Параметры
scale | a GtkScale | |
value | значение, на котором размещена метка, должно быть между нижним и верхним пределами регулировки шкалы | |
position | местоположение для рисования метки. Для горизонтальной шкалы GTK_POS_TOP и | |
markup | Текст, который будет отображаться у метки, используя разметку Pango или | [allow-none] |
С: 2.16
gtk_scale_clear_marks ()
void
gtk_scale_clear_marks (GtkScale *scale); Удаляет все метки, добавленные с помощью gtk_scale_add_mark().
Параметры
scale | a GtkScale |
С: 2.16
Типы и значения
struct GtkScale
struct GtkScale;
Подробности свойств
Свойство “digits”
“digits” gint
Количество десятичных знаков, отображаемых в значении.
Флаги: Чтение/Запись
Допустимые значения: [-1,64]
Значение по умолчанию: 1
Свойство “draw-value”
“draw-value” gboolean
Отображать ли текущее значение в виде строки рядом со ползунком.
Флаги: Чтение/Запись
Значение по умолчанию: TRUE
Свойство “has-origin”
“has-origin” gboolean
Наличие начала отсчёта на шкале.
Флаги: Чтение/Запись
Значение по умолчанию: TRUE
Свойство “value-pos”
“value-pos” GtkPositionType
Положение отображения текущего значения.
Флаги: Чтение/Запись
Значение по умолчанию: GTK_POS_TOP
Подробности свойств стиля
Свойство стиля “slider-length”
“slider-length” gint
Длина ползунка шкалы.
GtkScale:slider-length устарел с версии 3.20 и не должен использоваться в новом коде.
Используйте вместо этого свойства min-height/min-width CSS для элемента ползунка. Значение этого свойства стиля игнорируется.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 31
Свойство стиля “value-spacing”
“value-spacing” gint
Расстояние между текстом значения и областью ползунка/канавки.
GtkScale:value-spacing устарел с версии 3.20 и не должен использоваться в новом коде.
Используйте вместо этого свойства min-height/min-width CSS для элемента значения. Значение этого свойства стиля игнорируется.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 2
Подробности сигналов
Сигнал “format-value”
gchar* user_function (GtkScale *scale, gdouble value, gpointer user_data)
Сигнал, позволяющий изменить способ отображения значения шкалы. Подключите обработчик сигнала, который возвращает выделенную строку, представляющую value. Эта строка затем используется для отображения значения шкалы.
Вот пример обработчика сигнала, который отображает значение 1.0 как "-->1.0<--".
scale[.fine-tune]
├── marks.top
│ ├── mark
│ ┊ ├── [label]
│ ┊ ╰── indicator
┊ ┊
│ ╰── mark
├── contents
│ ╰── trough
│ ├── slider
│ ├── [highlight]
│ ╰── [fill]
╰── marks.bottom
├── mark
┊ ├── indicator
┊ ╰── [label]
╰── markПараметры
scale | объект, получивший сигнал | |
value | значение для форматирования | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Возвращаемое значение
выделенная строка, представляющая value
Флаги: Выполнить последним
© 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/GtkScale.html