GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Implemented Interfaces | Properties | Style Properties | Signals |
GtkSpinButtonGtkSpinButton Пользовательское определение целого или числа с плавающей точкой |
#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. |
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. |
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);
Создаёт новый GtkSpinButton.
|
GtkAdjustment объект который использует эта кнопка прокручивания. |
|
определяет на сколько изменяется кнопка прокручивания при нажатии на стрелки. |
|
Число десятичных для отображения. |
Возвращает : |
Новую кнопку прокручивания как GtkWidget. |
GtkWidget* gtk_spin_button_new_with_range (gdouble min,
gdouble max,
gdouble step);
Удобный конструктор позволяющий
создавать цифровой GtkSpinButton
без ручного создания регулировок.
Значения первоначальных установок для
минимального значения и страничного
приращения 10 * step
по умолчанию.
Точность кнопки вращения эквивалентна
step
.
Помните, помните лучший способ работы
определить точность step
равным десяти. Если точность результата
не удовлетворительна для вас, используйте
для её корректировки gtk_spin_button_set_digits()
.
|
Минимально допустимое значение |
|
Максимально допустимое значение |
|
Приращение увеличения или уменьшения при регулировки виджета |
Возвращает : |
Новая кнопка вращения как GtkWidget. |
void gtk_spin_button_set_adjustment (GtkSpinButton *spin_button,
GtkAdjustment *adjustment);
Пере устанавливает GtkAdjustment
связанный с spin_button
.
|
|
|
GtkAdjustment для пере-установки существующих регулировок |
GtkAdjustment* gtk_spin_button_get_adjustment
(GtkSpinButton *spin_button);
Получает регулировки связанные с GtkSpinButton
|
|
Возвращает : |
GtkAdjustment |
void gtk_spin_button_set_digits (GtkSpinButton *spin_button,
guint digits);
Устанавливает точность отображения
spin_button
. Допускает точность
до 20 цифр.
|
|
|
Число цифр после десятичной точки для отображения значения кнопки вращения |
void gtk_spin_button_set_increments (GtkSpinButton *spin_button,
gdouble step,
gdouble page);
Устанавливает шаговое и страничное приращение для spin_button. Это регулирует скорость изменения значения при активизации стрелок кнопки вращения.
|
|
|
Приращение применённое для нажатой кнопки 1. |
|
Приращение применённое для нажатой кнопки 2. |
void gtk_spin_button_set_range (GtkSpinButton *spin_button,
gdouble min,
gdouble max);
Устанавливает минимально и максимально
допустимые значения для spin_button
|
|
|
Минимально допустимое значение |
|
Максимально допустимое значение |
#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()
.
Возвращает : |
значение |
gint gtk_spin_button_get_value_as_int
(GtkSpinButton *spin_button);
Получает значение spin_button
представленное как целое.
|
|
Возвращает : |
значение |
void gtk_spin_button_set_value (GtkSpinButton *spin_button,
gdouble value);
Устанавливает значение spin_button
.
|
|
|
Новое значение |
void gtk_spin_button_set_update_policy
(GtkSpinButton *spin_button,
GtkSpinButtonUpdatePolicy policy);
Устанавливает поведение обновления кнопки вращения. Это определяет обновляется ли кнопка вращения всегда или только при установке допустимого значения.
|
|
|
значение GtkSpinButtonUpdatePolicy |
void gtk_spin_button_set_numeric (GtkSpinButton *spin_button,
gboolean numeric);
Устанавливает флажок определяющий если не цифровой текст может быть впечатан в кнопку вращения.
|
|
|
Флажок указывающий допустим ли только цифровой ввод. |
void gtk_spin_button_spin (GtkSpinButton *spin_button,
GtkSpinType direction,
gdouble increment);
Приращение или уменьшение значения кнопки вращения в указанном направлении указанным количеством.
|
|
|
GtkSpinType указывает направление вращения. |
|
Шаг приращения применённый к определённому направлению. |
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);Определяет точность
spin_button
. Смотритеgtk_spin_button_set_digits()
.
|
|
Возвращает : |
Текущая точность |
void gtk_spin_button_get_increments (GtkSpinButton *spin_button,
gdouble *step,
gdouble *page);
Определяет текущий шаг и страницу
приращения используемые spin_button
.
Смотрите gtk_spin_button_set_increments()
.
|
|
|
Шаг приращения, или |
|
Страница приращения, или |
gboolean gtk_spin_button_get_numeric (GtkSpinButton *spin_button);Определяет можно ли вводить не цифровой текст в кнопку прокручивания. Смотрите
gtk_spin_button_set_numeric()
.
|
|
Возвращает : |
|
void gtk_spin_button_get_range (GtkSpinButton *spin_button,
gdouble *min,
gdouble *max);
Определяет допустимый диапазон
spin_button
. Смотрите
gtk_spin_button_set_range()
.
|
|
|
Допустимое минимальное значение,
или |
|
Допустимое максимальное значение,
или |
gboolean gtk_spin_button_get_snap_to_ticks
(GtkSpinButton *spin_button);
Определяет корректируется ли значение
до ближайшего шага. Смотрите
gtk_spin_button_set_snap_to_ticks()
.
|
|
Возвращает : |
|
GtkSpinButtonUpdatePolicy gtk_spin_button_get_update_policy
(GtkSpinButton *spin_button);
Определяет поведение обновления кнопки
прокручивания. Смотрите
gtk_spin_button_set_update_policy()
.
|
|
Возвращает : |
Текущая политика обновления |
gdouble gtk_spin_button_get_value (GtkSpinButton *spin_button);Определяет значение в
spin_button
.
|
|
Возвращает : |
значение |
gboolean gtk_spin_button_get_wrap (GtkSpinButton *spin_button);Определяет должна ли кнопка прокручивания находиться в замкнутом цикле, то есть при достижении конца диапазона начинать прокрутку с противоположного конца. Смотрите
gtk_spin_button_set_wrap()
.
|
|
Возвращает : |
|
#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
|
объект получающий сигнал. |
|
|
|
пользовательские данные помещаемые при подключении обработчика сигнала. |
gint user_function (GtkSpinButton *spinbutton,
gpointer arg1,
gpointer user_data) : Run last
|
объект получающий сигнал. |
|
|
|
пользовательские данные помещаемые при подключении обработчика сигнала. |
Возвращает : |
gboolean user_function (GtkSpinButton *spinbutton,
gpointer user_data) : Run last
|
объект получающий сигнал. |
|
пользовательские данные помещаемые при подключении обработчика сигнала. |
Возвращает : |
void user_function (GtkSpinButton *spinbutton,
gpointer user_data) : Run last
|
объект получающий сигнал. |
|
пользовательские данные помещаемые при подключении обработчика сигнала. |
void user_function (GtkSpinButton *spinbutton,
gpointer user_data) : Run last
Сигнал замкнутого цикла издаётся сразу после достижения кнопкой прокручивания предела диапазона.
|
объект получающий сигнал. |
|
пользовательские данные помещаемые при подключении обработчика сигнала. |
Начиная с версии 2.10
Для ввода текста а не цифр. |