GtkScale
GtkScale — Виджет ползунка для выбора значения из диапазона
Функции
| char * | (*GtkScaleFormatValueFunc) () |
| GtkWidget * | gtk_scale_new () |
| GtkWidget * | gtk_scale_new_with_range () |
| void | gtk_scale_set_format_value_func () |
| void | gtk_scale_set_digits () |
| void | gtk_scale_set_draw_value () |
| void | gtk_scale_set_has_origin () |
| void | gtk_scale_set_value_pos () |
| int | 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 | digits | Чтение/Запись |
| gboolean | draw-value | Чтение/Запись |
| gboolean | has-origin | Чтение/Запись |
| GtkPositionType | value-pos | Чтение/Запись |
Типы и значения
| struct | GtkScale |
Реализованные интерфейсы
GtkScale реализует GtkAccessible, GtkBuildable, GtkConstraintTarget и 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 узлы
scale[.fine-tune][.marks-before][.marks-after]
├── [value][.top][.right][.bottom][.left]
├── marks.top
│ ├── mark
│ ┊ ├── [label]
│ ┊ ╰── indicator
┊ ┊
│ ╰── mark
├── marks.bottom
│ ├── mark
│ ┊ ├── indicator
│ ┊ ╰── [label]
┊ ┊
│ ╰── mark
╰── trough
├── [fill]
├── [highlight]
╰── sliderGtkScale имеет основной 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 перед или после узла trough, под которым каждый узел метки получает узел с именем mark. Узлы marks получают либо класс стиля .top, либо .bottom.
Узел метки имеет дочерний узел indicator. Если метка имеет текст, у неё также есть дочерний узел label. Когда метка расположена выше или слева от шкалы, узел label будет первым, если присутствует. В противном случае, узел indicator будет первым.
Основной CSS узел получает классы стиля 'marks-before' и/или 'marks-after', в зависимости от наличия меток.
Если шкала отображает значение (см. “draw-value”), есть дочерний узел с именем value. Этот узел получит классы стиля .top или .bottom, аналогично узлу marks.
Доступность
GtkScale использует роль GTK_ACCESSIBLE_ROLE_SLIDER.
Функции
GtkScaleFormatValueFunc ()
char * (*GtkScaleFormatValueFunc) (GtkScale *scale,double value,gpointer user_data);
Параметры
scale | Масштаб GtkScale | |
value | Числовое значение для форматирования | |
user_data | Пользовательские данные. | [closure] |
Возвращает
Новую строку, описывающую текстовое представление данного числового значения.
[not nullable]
gtk_scale_new ()
GtkWidget * gtk_scale_new (GtkOrientation orientation,GtkAdjustment *adjustment);
Создаёт новый GtkScale.
Параметры
orientation | направление шкалы. | |
adjustment | Регулировка GtkAdjustment, определяющая диапазон шкалы, или | [nullable] |
Возвращает
новый GtkScale
gtk_scale_new_with_range ()
GtkWidget * gtk_scale_new_with_range (GtkOrientation orientation,double min,double max,double step);
Создаёт новый виджет шкалы с заданным направлением, позволяющий пользователю ввести число от min до max (включая min и max ) с шагом step . step должно быть ненулевым; это расстояние, на которое слайдер перемещается при использовании клавиш со стрелками для изменения значения шкалы.
Обратите внимание, что способ вывода точности лучше всего работает, если step является степенью десяти. Если полученная точность не подходит для ваших нужд, используйте gtk_scale_set_digits() для её коррекции.
Параметры
orientation | направление шкалы. | |
min | минимальное значение | |
max | максимальное значение | |
step | шаг увеличения (размер метки) используется с клавишами быстрого доступа |
Возвращает
новый GtkScale
gtk_scale_set_format_value_func ()
void gtk_scale_set_format_value_func (GtkScale *scale,GtkScaleFormatValueFunc func,gpointer user_data,GDestroyNotify destroy_notify);
func позволяет изменить способ отображения значения шкалы. Указанная функция вернёт выделенную строку, представляющую value . Эта строка затем будет использована для отображения значения шкалы.
Если NULL передаётся в качестве func , значение будет отображено самостоятельно, округлённое в соответствии со значением свойства “digits”.
Параметры
scale | ||
func | функция форматирования значения. | [nullable] |
user_data | пользовательские данные для передачи в | [closure] |
destroy_notify | функция уничтожения для | [nullable] |
gtk_scale_set_digits ()
void gtk_scale_set_digits (GtkScale *scale,int digits);
Устанавливает количество десятичных знаков, отображаемых в значении. Также вызывает округление значения регулировки до этого числа знаков, чтобы полученное значение соответствовало отображаемому, если “draw-value” равно TRUE при изменении значения. Если вы хотите принудительно округлить значение, когда “draw-value” равно FALSE, вы можете установить “round-digits” вместо этого.
Обратите внимание, что округление до небольшого числа знаков может помешать плавному автоматическому прокручиванию, встроенному в GtkScale. В качестве альтернативы можно использовать gtk_scale_set_format_value_func() для самостоятельного форматирования отображаемого значения.
Параметры
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 |
|
gtk_scale_set_value_pos ()
void gtk_scale_set_value_pos (GtkScale *scale,GtkPositionType pos);
Устанавливает положение, в котором отображается текущее значение.
Параметры
scale | a GtkScale | |
pos | положение, в котором отображается текущее значение |
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 если шкала имеет начало отсчёта.
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 |
Возвращает
the PangoLayout для этой шкалы или NULL если свойство “draw-value” имеет значение FALSE.
[transfer none][nullable]
gtk_scale_get_layout_offsets ()
void gtk_scale_get_layout_offsets (GtkScale *scale,int *x,int *y);
Получает координаты, где шкала отобразит PangoLayout, представляющий текст на шкале. Помните, что при использовании функции PangoLayout вам необходимо переводить значения в пиксели и из пикселей с помощью PANGO_PIXELS() или PANGO_SCALE.
Если свойство “draw-value” имеет значение FALSE, значения возврата не определены.
Параметры
scale | a GtkScale | |
x | место для хранения смещения X макета, или | [out][allow-none] |
y | место для хранения смещения Y макета, или | [out][allow-none] |
gtk_scale_add_mark ()
void gtk_scale_add_mark (GtkScale *scale,double value,GtkPositionType position,const char *markup);
Добавляет метку в value.
Метка визуализируется в виде отметки рядом со шкалой, и GTK позволяет пользователю точно установить положение шкалы на значении метки.
Если markup не NULL, рядом с отметкой будет показан текст.
Чтобы удалить метки со шкалы, используйте gtk_scale_clear_marks().
Параметры
scale | a GtkScale | |
value | значение, по которому размещается метка. Оно должно быть между нижним и верхним пределами регулировки шкалы | |
position | место размещения метки. Для горизонтальной шкалы GTK_POS_TOP и | |
markup | Текст, отображаемый на метке, с использованием разметки Pango, или | [allow-none] |
gtk_scale_clear_marks ()
void
gtk_scale_clear_marks (GtkScale *scale); Удаляет все метки, добавленные с помощью gtk_scale_add_mark().
Параметры
scale | a GtkScale |
Типы и значения
struct GtkScale
struct GtkScale;
Подробное описание свойств
Свойство “digits”
“digits” int
Количество десятичных знаков, отображаемых в значении.
Владелец: GtkScale
Флаги: Чтение / Запись
Допустимые значения: [-1,64]
Значение по умолчанию: 1
Свойство “draw-value”
“draw-value” gboolean
Отображается ли текущее значение в виде строки рядом с ползунком.
Владелец: GtkScale
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “has-origin”
“has-origin” gboolean
Имеет ли шкала начало отсчёта.
Владелец: GtkScale
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “value-pos”
“value-pos” GtkPositionType
Позиция, в которой отображается текущее значение.
Владелец: GtkScale
Флаги: Чтение / Запись
Значение по умолчанию: GTK_POS_TOP
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkScale.html