Spec-Zone.ru › GTK 4.0

GtkSpinButton

GtkSpinButton — Получение целого или вещественного числа от пользователя

Функции

GtkWidget * gtk_spin_button_new ()
GtkWidget * gtk_spin_button_new_with_range ()
void gtk_spin_button_set_adjustment ()
GtkAdjustment * gtk_spin_button_get_adjustment ()
void gtk_spin_button_set_digits ()
guint gtk_spin_button_get_digits ()
void gtk_spin_button_set_increments ()
void gtk_spin_button_get_increments ()
void gtk_spin_button_set_range ()
void gtk_spin_button_get_range ()
int gtk_spin_button_get_value_as_int ()
void gtk_spin_button_set_value ()
double gtk_spin_button_get_value ()
void gtk_spin_button_set_update_policy ()
GtkSpinButtonUpdatePolicy gtk_spin_button_get_update_policy ()
void gtk_spin_button_set_numeric ()
gboolean gtk_spin_button_get_numeric ()
void gtk_spin_button_set_wrap ()
gboolean gtk_spin_button_get_wrap ()
void gtk_spin_button_set_snap_to_ticks ()
gboolean gtk_spin_button_get_snap_to_ticks ()
void gtk_spin_button_set_climb_rate ()
double gtk_spin_button_get_climb_rate ()
void gtk_spin_button_configure ()
void gtk_spin_button_spin ()
void gtk_spin_button_update ()

Свойства

GtkAdjustment * adjustment Чтение / Запись
double climb-rate Чтение / Запись
guint digits Чтение / Запись
gboolean numeric Чтение / Запись
gboolean snap-to-ticks Чтение / Запись
GtkSpinButtonUpdatePolicy update-policy Чтение / Запись
double value Чтение / Запись
gboolean wrap Чтение / Запись

Сигналы

void change-value Действие
int input Выполнить последним
gboolean output Выполнить последним
void value-changed Выполнить последним
void wrapped Выполнить последним

Типы и Значения

GtkSpinButton
перечисление GtkSpinButtonUpdatePolicy
перечисление GtkSpinType
#определить GTK_INPUT_ERROR

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkSpinButton

Реализованные интерфейсы

GtkSpinButton реализует GtkAccessible, GtkBuildable, GtkConstraintTarget, GtkOrientable, GtkEditable и GtkCellEditable.

Файлы включения

#include <gtk/gtk.h>

Описание

A GtkSpinButton — это идеальный способ позволить пользователю установить значение некоторого атрибута. Вместо того, чтобы вводить число напрямую в GtkEntry, GtkSpinButton позволяет пользователю нажимать на одну из двух стрелок для увеличения или уменьшения отображаемого значения. Значение всё равно можно ввести, при этом есть возможность проверить, находится ли оно в заданном диапазоне.

Основные свойства GtkSpinButton реализуются с помощью настройки. Подробности о свойствах настройки см. в разделе GtkAdjustment.

Обратите внимание, что GtkSpinButton по умолчанию делает свой ввод достаточно широким, чтобы вместить нижнюю и верхнюю границы настройки. Если этого не нужно, автоматическое изменение размера можно отключить, явно задав “width-chars” значению, отличному от -1.

Использование GtkSpinButton для получения целого числа

Использование GtkSpinButton для получения значения с плавающей точкой

CSS-узлы

Основной CSS-узел GtkSpinButton имеет имя spinbutton. Он создаёт дочерние узлы для поля ввода и двух кнопок с этими именами. Узлы кнопок имеют стили классов .up и .down. Дочерние узлы GtkText (если они присутствуют) располагаются под текстовым узлом. Ориентация спин-кнопки отражается в классе стиля .vertical или .horizontal на основном узле.

Доступность

GtkSpinButton использует роль GTK_ACCESSIBLE_ROLE_SPIN_BUTTON.

Функции

gtk_spin_button_new ()

GtkWidget *
gtk_spin_button_new (GtkAdjustment *adjustment,
                     double climb_rate,
                     guint digits);

Создаёт новый GtkSpinButton.

Параметры

adjustment

объект GtkAdjustment, который должен использовать этот элемент управления списком, или NULL.

[allow-none]

climb_rate

указывает, насколько увеличится скорость изменения значения, если вы продолжите удерживать кнопку «вверх/вниз» или клавишу со стрелками

digits

количество знаков после запятой для отображения

Возвращает

Новый элемент управления списком в качестве GtkWidget

gtk_spin_button_new_with_range ()

GtkWidget *
gtk_spin_button_new_with_range (double min,
                                double max,
                                double step);

Это удобный конструктор, который позволяет создать числовой GtkSpinButton без ручного создания объекта настройки. Значение по умолчанию изначально устанавливается в минимальное значение, а шаг изменения — 10 * step. Точность элемента управления списком эквивалентна точности step .

Обратите внимание, что способ получения точности работает лучше, если step является степенью десяти. Если полученная точность не подходит для ваших нужд, используйте gtk_spin_button_set_digits(), чтобы исправить её.

Параметры

min

Минимальное допустимое значение

max

Максимальное допустимое значение

step

Приращение, добавляемое или вычитаемое при вращении элемента управления

Возвращает

Новый элемент управления списком в качестве GtkWidget

gtk_spin_button_set_adjustment ()

void
gtk_spin_button_set_adjustment (GtkSpinButton *spin_button,
                                GtkAdjustment *adjustment);

Заменяет GtkAdjustment, связанный с spin_button.

Параметры

spin_button

элемент управления списком GtkSpinButton

adjustment

объект GtkAdjustment для замены существующей настройки

gtk_spin_button_get_adjustment ()

GtkAdjustment *
gtk_spin_button_get_adjustment (GtkSpinButton *spin_button);

Получить настройку, связанную с GtkSpinButton

Параметры

spin_button

элемент управления списком GtkSpinButton

Возвращает

объект GtkAdjustment spin_button .

[transfer none]

gtk_spin_button_set_digits ()

void
gtk_spin_button_set_digits (GtkSpinButton *spin_button,
                            guint digits);

Установить точность отображения, используемую spin_button . Допускается точность до 20 знаков.

Параметры

spin_button

элемент управления списком GtkSpinButton

digits

количество знаков после запятой для отображения значения элемента управления списком

gtk_spin_button_get_digits ()

guint
gtk_spin_button_get_digits (GtkSpinButton *spin_button);

Получает точность spin_button . Смотрите gtk_spin_button_set_digits().

Параметры

spin_button

элемент управления списком GtkSpinButton

Возвращает

текущую точность

gtk_spin_button_set_increments ()

void
gtk_spin_button_set_increments (GtkSpinButton *spin_button,
                                double step,
                                double page);

Устанавливает шаговые и страничные приращения для spin_button. Это влияет на скорость изменения значения при активации стрелок элемента управления списком.

Параметры

spin_button

элемент управления списком GtkSpinButton

step

приращение, применяемое при одном нажатии кнопки.

page

приращение, применяемое при втором нажатии кнопки.

gtk_spin_button_get_increments ()

void
gtk_spin_button_get_increments (GtkSpinButton *spin_button,
                                double *step,
                                double *page);

Получает текущие шаговые и страничные приращения, используемые spin_button. Смотрите gtk_spin_button_set_increments().

Параметры

spin_button

элемент управления списком GtkSpinButton

step

место для хранения шагового приращения или NULL.

[out][allow-none]

page

место для хранения страничного приращения или NULL.

[out][allow-none]

gtk_spin_button_set_range ()

void
gtk_spin_button_set_range (GtkSpinButton *spin_button,
                           double min,
                           double max);

Устанавливает минимальное и максимальное допустимые значения для spin_button.

Если текущее значение находится вне этого диапазона, оно будет скорректировано для соответствия диапазону, в противном случае оно останется неизменным.

Параметры

spin_button

элемент управления списком GtkSpinButton

min

минимальное допустимое значение

max

максимальное допустимое значение

gtk_spin_button_get_range ()

void
gtk_spin_button_get_range (GtkSpinButton *spin_button,
                           double *min,
                           double *max);

Получает диапазон, разрешённый для spin_button. См. gtk_spin_button_set_range().

Параметры

spin_button

a GtkSpinButton

min

место для хранения минимального допустимого значения, или NULL.

[out][optional]

max

место для хранения максимального допустимого значения, или NULL.

[out][optional]

gtk_spin_button_get_value_as_int ()

int
gtk_spin_button_get_value_as_int (GtkSpinButton *spin_button);

Получает значение spin_button, представленное как целое число.

Параметры

spin_button

a GtkSpinButton

Возвращает

значение spin_button

gtk_spin_button_set_value ()

void
gtk_spin_button_set_value (GtkSpinButton *spin_button,
                           double value);

Устанавливает значение spin_button.

Параметры

spin_button

a GtkSpinButton

value

новое значение

gtk_spin_button_get_value ()

double
gtk_spin_button_get_value (GtkSpinButton *spin_button);

Получает значение в spin_button.

Параметры

spin_button

a GtkSpinButton

Возвращает

значение spin_button

gtk_spin_button_set_update_policy ()

void
gtk_spin_button_set_update_policy (GtkSpinButton *spin_button,
                                   GtkSpinButtonUpdatePolicy policy);

Устанавливает поведение обновления для спин-кнопки. Это определяет, обновляется ли спин-кнопка всегда или только при установке допустимого значения.

Параметры

spin_button

a GtkSpinButton

policy

значение GtkSpinButtonUpdatePolicy

gtk_spin_button_get_update_policy ()

GtkSpinButtonUpdatePolicy
gtk_spin_button_get_update_policy (GtkSpinButton *spin_button);

Получает поведение обновления спин-кнопки. См. gtk_spin_button_set_update_policy().

Параметры

spin_button

a GtkSpinButton

Возвращает

текущую политику обновления

gtk_spin_button_set_numeric ()

void
gtk_spin_button_set_numeric (GtkSpinButton *spin_button,
                             gboolean numeric);

Устанавливает флаг, определяющий, можно ли вводить в спин-кнопку нечисловые символы.

Параметры

spin_button

a GtkSpinButton

numeric

флаг, указывающий, разрешено ли вводить только числовые значения

gtk_spin_button_get_numeric ()

gboolean
gtk_spin_button_get_numeric (GtkSpinButton *spin_button);

Возвращает, можно ли вводить нечисловые символы в спин-кнопку. См. gtk_spin_button_set_numeric().

Параметры

spin_button

a GtkSpinButton

Возвращает

TRUE , если разрешено вводить только числовые значения

gtk_spin_button_set_wrap ()

void
gtk_spin_button_set_wrap (GtkSpinButton *spin_button,
                          gboolean wrap);

Устанавливает флаг, определяющий, обходит ли значение спин-кнопки границы диапазона при превышении верхнего или нижнего предела.

Параметры

spin_button

a GtkSpinButton

wrap

флаг, указывающий, выполняется ли поведение обхода

gtk_spin_button_get_wrap ()

gboolean
gtk_spin_button_get_wrap (GtkSpinButton *spin_button);

Возвращает, обходит ли значение спин-кнопки границы диапазона при превышении верхнего или нижнего предела. См. gtk_spin_button_set_wrap().

Параметры

spin_button

a GtkSpinButton

Возвращает

TRUE , если значение спин-кнопки обходит границы

gtk_spin_button_set_snap_to_ticks ()

void
gtk_spin_button_set_snap_to_ticks (GtkSpinButton *spin_button,
                                   gboolean snap_to_ticks);

Устанавливает политику, определяющую, корректируются ли значения до ближайшего шага инкремента при активации спин-кнопки после ввода недопустимого значения.

Параметры

spin_button

a GtkSpinButton

snap_to_ticks

флаг, указывающий, должны ли корректироваться недопустимые значения

gtk_spin_button_get_snap_to_ticks ()

gboolean
gtk_spin_button_get_snap_to_ticks (GtkSpinButton *spin_button);

Возвращает, корректируются ли значения до ближайшего шага. См. gtk_spin_button_set_snap_to_ticks().

Параметры

spin_button

a GtkSpinButton

Возвращает

TRUE , если значения приближены к ближайшему шагу

gtk_spin_button_set_climb_rate ()

void
gtk_spin_button_set_climb_rate (GtkSpinButton *spin_button,
                                double climb_rate);

Устанавливает скорость ускорения при многократных изменениях значения при удерживании кнопки или клавиши.

Параметры

spin_button

a GtkSpinButton

climb_rate

скорость ускорения, должна быть >= 0

gtk_spin_button_get_climb_rate ()

double
gtk_spin_button_get_climb_rate (GtkSpinButton *spin_button);

Возвращает скорость ускорения при многократных изменениях.

Параметры

spin_button

a GtkSpinButton

Возвращает

скорость ускорения

gtk_spin_button_configure ()

void
gtk_spin_button_configure (GtkSpinButton *spin_button,
                           GtkAdjustment *adjustment,
                           double climb_rate,
                           guint digits);

Изменяет свойства существующей кнопки спин-ввода. Соответственно обновляются регулировка, скорость изменения и количество десятичных знаков.

Параметры

spin_button

a GtkSpinButton

adjustment

a GtkAdjustment для замены текущей регулировки кнопки спин-ввода, или NULL для сохранения текущей регулировки.

[nullable]

climb_rate

новая скорость изменения

digits

количество десятичных знаков, отображаемых в кнопке спин-ввода

gtk_spin_button_spin ()

void
gtk_spin_button_spin (GtkSpinButton *spin_button,
                      GtkSpinType direction,
                      double increment);

Увеличивает или уменьшает значение кнопки спин-ввода в указанном направлении на указанную величину.

Параметры

spin_button

a GtkSpinButton

direction

a GtkSpinType, указывающий направление вращения

increment

приращение шага, применяемое в указанном направлении

gtk_spin_button_update ()

void
gtk_spin_button_update (GtkSpinButton *spin_button);

Принудительно обновляет кнопку спин-ввода.

Параметры

spin_button

a GtkSpinButton

Типы и значения

GtkSpinButton

typedef struct _GtkSpinButton GtkSpinButton;

перечисление GtkSpinButtonUpdatePolicy

Политика обновления кнопки спин-ввода определяет, отображаются ли значения кнопки, даже если они выходят за пределы её регулировки. См. gtk_spin_button_set_update_policy().

Элементы

GTK_UPDATE_ALWAYS

При обновлении GtkSpinButton значение всегда отображается

GTK_UPDATE_IF_VALID

При обновлении GtkSpinButton значение отображается только если оно допустимо в пределах регулировки кнопки спин-ввода

перечисление GtkSpinType

Значения перечисления GtkSpinType используются для указания изменений, которые нужно внести в gtk_spin_button_spin().

Элементы

GTK_SPIN_STEP_FORWARD

Увеличение на значение шага регулировки.

GTK_SPIN_STEP_BACKWARD

Уменьшение на значение шага регулировки.

GTK_SPIN_PAGE_FORWARD

Увеличение на значение страницы регулировки.

GTK_SPIN_PAGE_BACKWARD

Уменьшение на значение страницы регулировки.

GTK_SPIN_HOME

Переход к нижней границе регулировки.

GTK_SPIN_END

Переход к верхней границе регулировки.

GTK_SPIN_USER_DEFINED

Изменение на заданную величину.

GTK_INPUT_ERROR

#define GTK_INPUT_ERROR -1

Константа, возвращаемая обработчиком сигнала для сигнала “input” в случае неудачи преобразования.

Подробное описание свойств

Свойство “adjustment”

  “adjustment”               GtkAdjustment *

Регулировка, хранящая значение кнопки спин-ввода.

Владелец: GtkSpinButton

Флаги: Чтение / Запись

Свойство “climb-rate”

  “climb-rate”               double

Скорость ускорения при удерживании кнопки или клавиши.

Владелец: GtkSpinButton

Флаги: Чтение / Запись

Допустимые значения: >= 0

Значение по умолчанию: 0

Свойство “digits”

  “digits”                   guint

Количество десятичных знаков для отображения.

Владелец: GtkSpinButton

Флаги: Чтение / Запись

Допустимые значения: <= 20

Значение по умолчанию: 0

Свойство “numeric”

  “numeric”                  gboolean

Должны ли игнорироваться нечисловые символы.

Владелец: GtkSpinButton

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “snap-to-ticks”

  “snap-to-ticks”            gboolean

Автоматически ли изменяются недопустимые значения на ближайшее значение шага кнопки спин-ввода.

Владелец: GtkSpinButton

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “update-policy”

  “update-policy”            GtkSpinButtonUpdatePolicy

Обновлять ли кнопку спин-ввода всегда или только при корректном значении.

Владелец: GtkSpinButton

Флаги: Чтение / Запись

Значение по умолчанию: GTK_UPDATE_ALWAYS

Свойство “value”

  “value”                    double

Чтение текущего значения или установка нового значения.

Владелец: GtkSpinButton

Флаги: Чтение / Запись

Значение по умолчанию: 0

Свойство “wrap”

  “wrap”                     gboolean

Нужно ли кнопке спин-ввода переходить на другую сторону при достижении пределов.

Владелец: GtkSpinButton

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Подробности сигналов

Сигнал “change-value”

void
user_function (GtkSpinButton *spin_button,
               GtkScrollType  scroll,
               gpointer       user_data)

Сигнал ::change-value — это сигнал для привязки к горячим клавишам, который генерируется при изменении пользователем значения.

Приложения не должны подключаться к этому сигналу, но могут генерировать его с помощью g_signal_emit_by_name(), если им необходимо программно управлять курсором.

Стандартные сочетания клавиш для этого сигнала — стрелки вверх/вниз и Page Up/Page Down.

Параметры

spin_button

объект, на котором был сгенерирован сигнал

scroll

тип прокрутки GtkScrollType для указания скорости и величины изменения

user_data

данные пользователя, установленные при подключении обработчика сигнала.

Флаги: Действие

Сигнал “input”

int
user_function (GtkSpinButton *spin_button,
               gpointer       new_value,
               gpointer       user_data)

Сигнал ::input может использоваться для управления преобразованием пользовательского ввода в значение типа double. Обработчик сигнала должен использовать gtk_editable_get_text() для получения текста из спин-бутона и установить new_value в новое значение.

По умолчанию используется преобразование g_strtod().

Параметры

spin_button

объект, на котором был сгенерирован сигнал

new_value

место для возврата нового значения.

[out][type double]

user_data

данные пользователя, установленные при подключении обработчика сигнала.

Возвращаемое значение

TRUE при успешном преобразовании, FALSE если вход не был обработан, и GTK_INPUT_ERROR если преобразование завершилось неудачно.

Флаги: Выполнить последним

Сигнал “output”

gboolean
user_function (GtkSpinButton *spin_button,
               gpointer       user_data)

Сигнал ::output может использоваться для изменения формата значения, отображаемого в поле ввода спин-бутона.

// Provides a function to retrieve an integer value from a GtkSpinButton
// and creates a spin button to model percentage values.

int
grab_int_value (GtkSpinButton *button,
                gpointer       user_data)
{
  return gtk_spin_button_get_value_as_int (button);
}

void
create_integer_spin_button (void)
{

  GtkWidget *window, *button;
  GtkAdjustment *adjustment;

  adjustment = gtk_adjustment_new (50.0, 0.0, 100.0, 1.0, 5.0, 0.0);

  window = gtk_window_new ();

  // creates the spinbutton, with no decimal places
  button = gtk_spin_button_new (adjustment, 1.0, 0);
  gtk_window_set_child (GTK_WINDOW (window), button);

  gtk_widget_show (window);
}

Параметры

spin_button

объект, на котором был сгенерирован сигнал

user_data

данные пользователя, установленные при подключении обработчика сигнала.

Возвращаемое значение

TRUE если значение было отображено

Флаги: Выполнить последним

Сигнал “value-changed”

void
user_function (GtkSpinButton *spin_button,
               gpointer       user_data)

Сигнал ::value-changed генерируется, когда изменяется значение, представленное spinbutton. Также см. сигнал “output”.

Параметры

spin_button

объект, на котором был сгенерирован сигнал

user_data

данные пользователя, установленные при подключении обработчика сигнала.

Флаги: Выполнить последним

Сигнал “wrapped”

void
user_function (GtkSpinButton *spin_button,
               gpointer       user_data)

Сигнал ::wrapped генерируется сразу после того, как спин-бутон переходит от максимального к минимальному значению или наоборот.

Параметры

spin_button

объект, на котором был сгенерирован сигнал

user_data

данные пользователя, установленные при подключении обработчика сигнала.

Флаги: Выполнить последним

См. также

GtkEntry

© 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/GtkSpinButton.html

Spec-Zone.ru

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