Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Implemented Interfaces  |  Properties  |  Style Properties  |  Signals

GtkSpinButton

GtkSpinButton Пользовательское определение целого или числа с плавающей точкой

Краткое описание

#include <gtk/gtk.h> GtkSpinButton; enum GtkSpinButtonUpdatePolicy; enum GtkSpinType; void gtk_spin_button_configure (GtkSpinButton *spin_button, GtkAdjustment *adjustment, gdouble climb_rate, guint digits); GtkWidget* gtk_spin_button_new (GtkAdjustment *adjustment, gdouble climb_rate, guint digits); GtkWidget* gtk_spin_button_new_with_range (gdouble min, gdouble max, gdouble step); void gtk_spin_button_set_adjustment (GtkSpinButton *spin_button, GtkAdjustment *adjustment); GtkAdjustment* gtk_spin_button_get_adjustment (GtkSpinButton *spin_button); void gtk_spin_button_set_digits (GtkSpinButton *spin_button, guint digits); void gtk_spin_button_set_increments (GtkSpinButton *spin_button, gdouble step, gdouble page); void gtk_spin_button_set_range (GtkSpinButton *spin_button, gdouble min, gdouble max); #define gtk_spin_button_get_value_as_float gint gtk_spin_button_get_value_as_int (GtkSpinButton *spin_button); void gtk_spin_button_set_value (GtkSpinButton *spin_button, gdouble value); void gtk_spin_button_set_update_policy (GtkSpinButton *spin_button, GtkSpinButtonUpdatePolicy policy); void gtk_spin_button_set_numeric (GtkSpinButton *spin_button, gboolean numeric); void gtk_spin_button_spin (GtkSpinButton *spin_button, GtkSpinType direction, gdouble increment); void gtk_spin_button_set_wrap (GtkSpinButton *spin_button, gboolean wrap); void gtk_spin_button_set_snap_to_ticks (GtkSpinButton *spin_button, gboolean snap_to_ticks); void gtk_spin_button_update (GtkSpinButton *spin_button); guint gtk_spin_button_get_digits (GtkSpinButton *spin_button); void gtk_spin_button_get_increments (GtkSpinButton *spin_button, gdouble *step, gdouble *page); gboolean gtk_spin_button_get_numeric (GtkSpinButton *spin_button); void gtk_spin_button_get_range (GtkSpinButton *spin_button, gdouble *min, gdouble *max); gboolean gtk_spin_button_get_snap_to_ticks (GtkSpinButton *spin_button); GtkSpinButtonUpdatePolicy gtk_spin_button_get_update_policy (GtkSpinButton *spin_button); gdouble gtk_spin_button_get_value (GtkSpinButton *spin_button); gboolean gtk_spin_button_get_wrap (GtkSpinButton *spin_button); #define GTK_INPUT_ERROR

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

GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkEntry +----GtkSpinButton

Осуществляемые интерфейсы

GtkSpinButton осуществляет AtkImplementorIface, GtkCellEditable и GtkEditable.

Свойства

"adjustment" GtkAdjustment : Read / Write "climb-rate" gdouble : Read / Write "digits" guint : Read / Write "numeric" gboolean : Read / Write "snap-to-ticks" gboolean : Read / Write "update-policy" GtkSpinButtonUpdatePolicy : Read / Write "value" gdouble : Read / Write "wrap" gboolean : Read / Write

Свойства стиля

  "shadow-type"          GtkShadowType         : Read

Сигналы

"change-value" void user_function (GtkSpinButton *spinbutton, GtkScrollType *arg1, gpointer user_data) : Run last / Action "input" gint user_function (GtkSpinButton *spinbutton, gpointer arg1, gpointer user_data) : Run last "output" gboolean user_function (GtkSpinButton *spinbutton, gpointer user_data) : Run last "value-changed" void user_function (GtkSpinButton *spinbutton, gpointer user_data) : Run last "wrapped" void user_function (GtkSpinButton *spinbutton, gpointer user_data) : Run last

Описание

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

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

Пример 1. Использование GtkSpinButton для получения целого.

/* Функция для получения целого значения из GtkSpinButton * и создание кнопок прокручивания для моделирования процентного значения. */ gint grab_int_value (GtkSpinButton *a_spinner, gpointer user_data) { return gtk_spin_button_get_value_as_int (a_spinner); } void create_integer_spin_button (void) { GtkWidget *window, *spinner; GtkAdjustment *spinner_adj; spinner_adj = (GtkAdjustment *) gtk_adjustment_new (50.0, 0.0, 100.0, 1.0, 5.0, 5.0); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window), 5); /* создаём прокрутку (spinner), без десятичных */ spinner = gtk_spin_button_new (spinner_adj, 1.0, 0); gtk_container_add (GTK_CONTAINER (window), spinner); gtk_widget_show_all (window); return; }

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

/* Функция получения значения с плавающей точкой из * GtkSpinButton, и создание кнопок вращения высокой точности. */ gfloat grab_int_value (GtkSpinButton *a_spinner, gpointer user_data) { return gtk_spin_button_get_value (a_spinner); } void create_floating_spin_button (void) { GtkWidget *window, *spinner; GtkAdjustment *spinner_adj; spinner_adj = (GtkAdjustment *) gtk_adjustment_new (2.500, 0.0, 5.0, 0.001, 0.1, 0.1); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window), 5); /* создаём поле прокручивания (spinner), с тремя знаками после запятой */ spinner = gtk_spin_button_new (spinner_adj, 0.001, 3); gtk_container_add (GTK_CONTAINER (window), spinner); gtk_widget_show_all (window); return; }

Детали

GtkSpinButton

typedef struct _GtkSpinButton GtkSpinButton;

entry это GtkEntry часть виджета GtkSpinButton и может соответственно использоваться. Все другие поля содержат закрытые данные и могут модифицироваться только функциями описанными ниже.


enum GtkSpinButtonUpdatePolicy

typedef enum { GTK_UPDATE_ALWAYS, GTK_UPDATE_IF_VALID } GtkSpinButtonUpdatePolicy;

GTK_UPDATE_ALWAYS

Если ваш GtkSpinButton обновляется, значение отображается всегда.

GTK_UPDATE_IF_VALID

Если ваш GtkSpinButton обновляется, значение отображается только если оно находится в пределах кнопки вращения GtkAdjustment.


enum GtkSpinType

typedef enum { 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 } GtkSpinType;

GTK_SPIN_STEP_FORWARD, GTK_SPIN_STEP_BACKWARD, GTK_SPIN_PAGE_FORWARD, GTK_SPIN_PAGE_BACKWARD

Это значения вращения GtkSpinButton соответствующие значениям кнопок вращения GtkAdjustment.

GTK_SPIN_HOME, GTK_SPIN_END

Это устанавливает значение кнопок вращения в минимально или максимально возможные значения, (устанавливает GtkAdjustment), соответственно.

GTK_SPIN_USER_DEFINED

Программист должен определить точное количество для прокручивания 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.

climb_rate :

Новая норма увеличения.

digits :

Число десятичных для отображения в кнопке прокручивания.


gtk_spin_button_new ()

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

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

adjustment :

GtkAdjustment объект который использует эта кнопка прокручивания.

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);

Пере устанавливает 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


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. Это регулирует скорость изменения значения при активизации стрелок кнопки вращения.

spin_button :

GtkSpinButton

step :

Приращение применённое для нажатой кнопки 1.

page :

Приращение применённое для нажатой кнопки 2.


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_float

#define gtk_spin_button_get_value_as_float gtk_spin_button_get_value

Внимание

gtk_spin_button_get_value_as_float устарела и не должна использоваться во вновь создаваемом коде.

Получает значение в spin_button. Вместо этой устаревшей функции используйте gtk_spin_button_get_value().

Возвращает :

значение spin_button.


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 :

GtkSpinButton

policy :

значение GtkSpinButtonUpdatePolicy


gtk_spin_button_set_numeric ()

void gtk_spin_button_set_numeric (GtkSpinButton *spin_button, gboolean numeric);

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

spin_button :

GtkSpinButton

numeric :

Флажок указывающий допустим ли только цифровой ввод.


gtk_spin_button_spin ()

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

Приращение или уменьшение значения кнопки вращения в указанном направлении указанным количеством.

spin_button :

GtkSpinButton

direction :

GtkSpinType указывает направление вращения.

increment :

Шаг приращения применённый к определённому направлению.


gtk_spin_button_set_wrap ()

void gtk_spin_button_set_wrap (GtkSpinButton *spin_button, gboolean wrap);

Устанавливает флажок который определяет начинать или нет прокручивание с противоположного конца когда достигнут предел диапазона.

spin_button :

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 :

GtkSpinButton

snap_to_ticks :

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


gtk_spin_button_update ()

void        gtk_spin_button_update          (GtkSpinButton *spin_button);

Заставляет самостоятельно обновлять кнопку прокручивания.

spin_button :

GtkSpinButton


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

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

Определяет текущий шаг и страницу приращения используемые spin_button. Смотрите gtk_spin_button_set_increments().

spin_button :

GtkSpinButton

step :

Шаг приращения, или NULL

page :

Страница приращения, или NULL


gtk_spin_button_get_numeric ()

gboolean    gtk_spin_button_get_numeric     (GtkSpinButton *spin_button);

Определяет можно ли вводить не цифровой текст в кнопку прокручивания. Смотрите gtk_spin_button_set_numeric().

spin_button :

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 :

GtkSpinButton

min :

Допустимое минимальное значение, или NULL

max :

Допустимое максимальное значение, или NULL


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 :

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 :

GtkSpinButton

Возвращает :

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


gtk_spin_button_get_value ()

gdouble     gtk_spin_button_get_value       (GtkSpinButton *spin_button);

Определяет значение в spin_button.

spin_button :

GtkSpinButton

Возвращает :

значение spin_button


gtk_spin_button_get_wrap ()

gboolean    gtk_spin_button_get_wrap        (GtkSpinButton *spin_button);

Определяет должна ли кнопка прокручивания находиться в замкнутом цикле, то есть при достижении конца диапазона начинать прокрутку с противоположного конца. Смотрите gtk_spin_button_set_wrap().

spin_button :

GtkSpinButton

Возвращает :

TRUE если кнопка прокручивания в замкнутом цикле


GTK_INPUT_ERROR

#define GTK_INPUT_ERROR -1

Детали свойств

Свойство "adjustment"

  "adjustment"           GtkAdjustment         : Read / Write

Значение регулировок кнопки прокручивания.


Свойство "climb-rate"

  "climb-rate"           gdouble               : Read / Write

Ускорение при удерживании кнопки нажатой.

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

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


Свойство "digits"

  "digits"               guint                 : Read / Write

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

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

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


Свойство "numeric"

  "numeric"              gboolean              : Read / Write

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

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


Свойство "snap-to-ticks"

  "snap-to-ticks"        gboolean              : Read / Write

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

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


Свойство "update-policy"

  "update-policy"        GtkSpinButtonUpdatePolicy  : Read / Write

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

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


Свойство "value"

  "value"                gdouble               : Read / Write

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

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


Свойство "wrap"

  "wrap"                 gboolean              : Read / Write

Должна ли кнопка прокручивания находится в замкнутом цикле при достижении пределов диапазона.

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

Детали свойств стиля

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

  "shadow-type"          GtkShadowType         : Read

тип окантовки которая окружает стрелки в кнопке прокручивания.

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

Детали сигналов

Сигнал "change-value"

void user_function (GtkSpinButton *spinbutton, GtkScrollType *arg1, gpointer user_data) : Run last / Action

spinbutton :

объект получающий сигнал.

arg1 :

user_data :

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


Сигнал "input"

gint user_function (GtkSpinButton *spinbutton, gpointer arg1, gpointer user_data) : Run last

spinbutton :

объект получающий сигнал.

arg1 :

user_data :

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

Возвращает :


Сигнал "output"

gboolean user_function (GtkSpinButton *spinbutton, gpointer user_data) : Run last

spinbutton :

объект получающий сигнал.

user_data :

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

Возвращает :


Сигнал "value-changed"

void user_function (GtkSpinButton *spinbutton, gpointer user_data) : Run last

spinbutton :

объект получающий сигнал.

user_data :

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


Сигнал "wrapped"

void user_function (GtkSpinButton *spinbutton, gpointer user_data) : Run last

Сигнал замкнутого цикла издаётся сразу после достижения кнопкой прокручивания предела диапазона.

spinbutton :

объект получающий сигнал.

user_data :

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

Начиная с версии 2.10

Смотрите также

GtkEntry

Для ввода текста а не цифр.