Spec-Zone.ru › GTK 3.24

GtkSpinButton

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

Функции

void gtk_spin_button_configure ()
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 ()
void gtk_spin_button_set_increments ()
void gtk_spin_button_set_range ()
gint gtk_spin_button_get_value_as_int ()
void gtk_spin_button_set_value ()
void gtk_spin_button_set_update_policy ()
void gtk_spin_button_set_numeric ()
void gtk_spin_button_spin ()
void gtk_spin_button_set_wrap ()
void gtk_spin_button_set_snap_to_ticks ()
void gtk_spin_button_update ()
guint gtk_spin_button_get_digits ()
void gtk_spin_button_get_increments ()
gboolean gtk_spin_button_get_numeric ()
void gtk_spin_button_get_range ()
gboolean gtk_spin_button_get_snap_to_ticks ()
GtkSpinButtonUpdatePolicy gtk_spin_button_get_update_policy ()
gdouble gtk_spin_button_get_value ()
gboolean gtk_spin_button_get_wrap ()

Свойства

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

Стилизованные свойства

GtkShadowType shadow-type Чтение

Сигналы

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

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

struct GtkSpinButton
enum GtkSpinButtonUpdatePolicy
enum GtkSpinType
#define GTK_INPUT_ERROR

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

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

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

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

Файлы заголовков

#include <gtk/gtk.h>

Описание

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

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

CSS узлы

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

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

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

Функции

gtk_spin_button_configure ()

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

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

Параметры

spin_button

кнопка спин-ввода GtkSpinButton

adjustment

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

[nullable]

climb_rate

новый шаг изменения

digits

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

gtk_spin_button_new ()

GtkWidget *
gtk_spin_button_new (GtkAdjustment *adjustment,
                     gdouble 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 (gdouble min,
                                gdouble max,
                                gdouble 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);

Заменяет связанный с spin_button объект GtkAdjustment.

Параметры

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_set_increments ()

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

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

Параметры

spin_button

кнопка спин-ввода GtkSpinButton

step

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

page

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

gtk_spin_button_set_range ()

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

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

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

Параметры

spin_button

кнопка спин-ввода GtkSpinButton

min

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

max

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

gtk_spin_button_get_value_as_int ()

gint
gtk_spin_button_get_value_as_int (GtkSpinButton *spin_button);

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

Параметры

spin_button

кнопка спин-ввода GtkSpinButton

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

значение spin_button

gtk_spin_button_set_value ()

void
gtk_spin_button_set_value (GtkSpinButton *spin_button,
                           gdouble value);

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

Параметры

spin_button

кнопка спин-ввода GtkSpinButton

value

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

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_set_numeric ()

void
gtk_spin_button_set_numeric (GtkSpinButton *spin_button,
                             gboolean numeric);

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

Параметры

spin_button

a GtkSpinButton

numeric

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

gtk_spin_button_spin ()

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

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

Параметры

spin_button

a GtkSpinButton

direction

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

increment

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

gtk_spin_button_set_wrap ()

void
gtk_spin_button_set_wrap (GtkSpinButton *spin_button,
                          gboolean wrap);

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

Параметры

spin_button

a GtkSpinButton

wrap

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

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_update ()

void
gtk_spin_button_update (GtkSpinButton *spin_button);

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

Параметры

spin_button

a GtkSpinButton

gtk_spin_button_get_digits ()

guint
gtk_spin_button_get_digits (GtkSpinButton *spin_button);

Извлекает точность spin_button. См. gtk_spin_button_set_digits().

Параметры

spin_button

a GtkSpinButton

Возвращает

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

gtk_spin_button_get_increments ()

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

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

Параметры

spin_button

a GtkSpinButton

step

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

[out][allow-none]

page

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

[out][allow-none]

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_get_range ()

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

Получает диапазон допустимых значений для spin_button. См. gtk_spin_button_set_range().

Параметры

spin_button

a GtkSpinButton

min

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

[out][allow-none]

max

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

[out][allow-none]

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_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_get_value ()

gdouble
gtk_spin_button_get_value (GtkSpinButton *spin_button);

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

Параметры

spin_button

a GtkSpinButton

Возвращает

значение spin_button

gtk_spin_button_get_wrap ()

gboolean
gtk_spin_button_get_wrap (GtkSpinButton *spin_button);

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

Параметры

spin_button

a GtkSpinButton

Возвращает

TRUE если спин-кнопка обходит пределы

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

struct GtkSpinButton

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

Подробности свойств стиля

Свойство стиля “shadow-type”

  “shadow-type”              GtkShadowType

Стиль фаски вокруг спин-кнопки.

GtkSpinButton:shadow-type устарел с версии 3.20 и не должен использоваться в новом коде.

Используйте CSS для определения стиля границы; значение этого свойства стиля игнорируется.

Владелец: GtkSpinButton

Флаги: Чтение

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

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

Сигнал “change-value”

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

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

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

По умолчанию для этого сигнала назначены клавиши вверх/вниз и PageUp/PageDown.

Параметры

spin_button

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

scroll

GtkScrollType, определяющий скорость и величину изменения

user_data

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

Флаги: Action

Сигнал “input”

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

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

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

Параметры

spin_button

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

new_value

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

[out][type double]

user_data

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

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

TRUE для успешного преобразования, FALSE если ввод не обработан, и GTK_INPUT_ERROR в случае неудачи преобразования.

Флаги: Run Last

Сигнал “output”

gboolean
user_function (GtkSpinButton *spin_button,
               gpointer       user_data)

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

spinbutton.horizontal
├── undershoot.left
├── undershoot.right
├── entry
│   ╰── ...
├── button.down
╰── button.up

Параметры

spin_button

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

user_data

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

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

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

Флаги: Run Last

Сигнал “value-changed”

void
user_function (GtkSpinButton *spin_button,
               gpointer       user_data)

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

Параметры

spin_button

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

user_data

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

Флаги: Run Last

Сигнал “wrapped”

void
user_function (GtkSpinButton *spin_button,
               gpointer       user_data)

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

Параметры

spin_button

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

user_data

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

Флаги: Run Last

С: 2.10

См. также

GtkEntry

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

Spec-Zone.ru

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