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 () |
Свойства
| int | разряды | Чтение/Запись |
| gboolean | отображение-значения | Чтение/Запись |
| gboolean | наличие-начала | Чтение/Запись |
| GtkPositionType | положение-значения | Чтение/Запись |
Стилизованные свойства
| int | длина-ползунка | Чтение |
| int | расстояние-значения | Чтение |
Сигналы
| char* | форматирование-значения | Выполнение последним |
Типы и Значения
| 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. Узлы mark получают класс стиля .top или .bottom.
Узел mark имеет подчинённый узел indicator. Если у метки есть текст, у неё также есть подчинённый узел label. Когда метка находится выше или слева от шкалы, узел label является первым, если он присутствует. В противном случае, узел indicator является первым.
Основной CSS-узел получает классы стиля ‘marks-before’ и/или ‘marks-after’ в зависимости от наличия меток.
Если шкала отображает значение (см. “отображение-значения”), есть подчинённый узел с именем value.
Функции
gtk_scale_new ()
GtkWidget * gtk_scale_new (GtkOrientation orientation,GtkAdjustment *adjustment);
Создаёт новый GtkScale.
Параметры
orientation | ориентация шкалы. | |
adjustment | GtkAdjustment, определяющий диапазон шкалы, или | [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);
Устанавливает количество десятичных знаков, отображаемых в значении. Также приводит к округлению значения регулировки до этого количества цифр, так что полученное значение соответствует отображаемому, если “draw-value” равно TRUE при изменении значения. Если вы хотите принудительно округлить значение, когда “draw-value” равно FALSE, вы можете установить “round-digits” вместо этого.
Обратите внимание, что округление до малого количества знаков может препятствовать плавному автоматическому прокручиванию, встроенному в GtkScale. В качестве альтернативы вы можете использовать сигнал “format-value” для самостоятельного форматирования отображаемого значения.
Параметры
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);
Указывает, отображается ли текущее значение в виде строки рядом со слайдером.
Параметры
scale | a GtkScale | |
draw_value |
|
gtk_scale_set_has_origin ()
void gtk_scale_set_has_origin (GtkScale *scale,gboolean has_origin);
Если “has-origin” установлено в TRUE (по умолчанию), шкала будет выделять часть желоба между началом (нижняя или левая сторона) и текущим значением.
Параметры
scale | a GtkScale | |
has_origin |
|
С: 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, значения возврата не определены.
Параметры
scale | a GtkScale | |
x | место для хранения смещения X макета или | [out][allow-none] |
y | место для хранения смещения Y макета или | [out][allow-none] |
С: 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” int
Количество десятичных знаков, отображаемых в значении.
Владелец: GtkScale
Флаги: Чтение / Запись
Допустимые значения: [-1,64]
Значение по умолчанию: 1
Свойство “draw-value”
“draw-value” gboolean
Отображается ли текущее значение как строка рядом с ползунком.
Владелец: GtkScale
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “has-origin”
“has-origin” gboolean
Имеет ли шкала начало координат.
Владелец: GtkScale
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “value-pos”
“value-pos” GtkPositionType
Положение, в котором отображается текущее значение.
Владелец: GtkScale
Флаги: Чтение / Запись
Значение по умолчанию: GTK_POS_TOP
Подробности свойств стиля
Свойство стиля “slider-length”
“slider-length” int
Длина ползунка шкалы.
GtkScale:slider-length устарело начиная с версии 3.20 и не должно использоваться в новом коде.
Вместо этого используйте свойства CSS min-height/min-width для элемента ползунка. Значение этого свойства стиля игнорируется.
Владелец: GtkScale
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 31
Свойство стиля “value-spacing”
“value-spacing” int
Расстояние между текстом значения и областью ползунка/канавки.
GtkScale:value-spacing устарело начиная с версии 3.20 и не должно использоваться в новом коде.
Вместо этого используйте свойства CSS min-height/min-width для элемента значения. Значение этого свойства стиля игнорируется.
Владелец: GtkScale
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 2
Подробности сигналов
Сигнал “format-value”
char* user_function (GtkScale *scale, double value, gpointer user_data)
Сигнал, который позволяет изменить способ отображения значения шкалы. Подключите обработчик сигнала, который возвращает выделенную строку, представляющую value. Эта строка затем используется для отображения значения шкалы.
Если не установлены обработчики пользователя, значение будет отображаться самостоятельно, округляясь в соответствии со значением свойства “digits”.
Вот пример обработчика сигнала, который отображает значение 1.0 как "-->1.0<--".
scale[.fine-tune][.marks-before][.marks-after]
├── marks.top
│ ├── mark
│ ┊ ├── [label]
│ ┊ ╰── indicator
┊ ┊
│ ╰── mark
├── [value]
├── contents
│ ╰── trough
│ ├── slider
│ ├── [highlight]
│ ╰── [fill]
╰── marks.bottom
├── mark
┊ ├── indicator
┊ ╰── [label]
╰── markПараметры
scale | объект, который получил сигнал | |
value | значение для форматирования | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Возвращает
выделенную строку, представляющую value
Флаги: Run Last
© 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/GtkScale.html