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, когда шкала находится в режиме «fine-tuning».
Если шкала имеет начало (см. gtk_scale_set_has_origin()), есть под-узел с именем highlight под узлом trough, который используется для отрисовки выделенной части trough.
Если шкала отображает уровень заполнения (см. gtk_range_set_show_fill_level()), есть под-узел с именем fill под узлом trough, который используется для отрисовки заполненной части trough.
Если метки присутствуют, есть узел marks перед или после узла содержимого, под которым каждый маркер получает узел с именем mark. Узлы marks получают либо класс стиля .top, либо .bottom.
Узел маркер имеет под-узел с именем indicator. Если маркер имеет текст, у него также есть под-узел с именем label. Когда маркер находится либо над, либо слева от шкалы, узел label является первым при его наличии. В противном случае, узел indicator является первым.
Главный CSS-узел получает стилизованные классы 'marks-before' и/или 'marks-after', в зависимости от присутствующих меток.
Если шкала отображает значение (см. «draw-value»), есть под-узел с именем 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);
Устанавливает количество десятичных знаков, отображаемых в значении. Также вызывает округление значения настройки до этого числа знаков, поэтому полученное значение соответствует тому, что видел пользователь.
Обратите внимание, что округление до небольшого количества знаков может повлиять на плавную автоматическую прокрутку, встроенную в 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);
Указывает, отображается ли текущее значение как строка рядом с ползунком.
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 и не должно использоваться в новом коде.
Вместо этого используйте свойства CSS min-height/min-width для элемента ползунка. Значение этого свойства стиля игнорируется.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 31
Свойство стиля “value-spacing”
“value-spacing” gint
Пробел между текстом значения и областью ползунка/дорожки.
GtkScale:value-spacing устарело с версии 3.20 и не должно использоваться в новом коде.
Вместо этого используйте свойства CSS min-height/min-width для элемента значения. Значение этого свойства стиля игнорируется.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 2
Подробное описание сигналов
Сигнал “format-value”
gchar* user_function (GtkScale *scale, gdouble value, gpointer user_data)
Сигнал, позволяющий изменить способ отображения значения шкалы. Подключите обработчик сигнала, который возвращает выделенную строку, представляющую value . Эта строка затем используется для отображения значения шкалы.
Вот пример обработчика сигнала, который отображает значение 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.22/GtkScale.html