Spec-Zone.ru › GTK 4.0

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

Иерархия объектов

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkRange
                ╰── 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]
    ╰── slider

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 перед или после узла 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, определяющая диапазон шкалы, или NULL для создания новой регулировки.

[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

GtkScale

func

функция форматирования значения.

[nullable]

user_data

пользовательские данные для передачи в func .

[closure]

destroy_notify

функция уничтожения для user_data .

[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

TRUE для отображения значения

gtk_scale_set_has-origin ()

void
gtk_scale_set_has_origin (GtkScale *scale,
                          gboolean has_origin);

Если “has-origin” установлено в TRUE (по умолчанию), шкала выделит часть желоба между началом (нижняя или левая сторона) и текущим значением.

Параметры

scale

a GtkScale

has_origin

TRUE если шкала имеет начало

gtk_scale_set_value_pos ()

void
gtk_scale_set_value_pos (GtkScale *scale,
                         GtkPositionType pos);

Устанавливает положение, в котором отображается текущее значение.

Параметры

scale

a GtkScale

pos

положение, в котором отображается текущее значение

gtk_scale_get_digits ()

int
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 если шкала имеет начало отсчёта.

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 макета, или NULL.

[out][allow-none]

y

место для хранения смещения Y макета, или NULL.

[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 и GTK_POS_LEFT рисуются над шкалой, в противном случае под ней. Для вертикальной шкалы GTK_POS_LEFT и GTK_POS_TOP рисуются слева от шкалы, в противном случае справа.

markup

Текст, отображаемый на метке, с использованием разметки Pango, или NULL.

[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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API