краткое описание#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; } деталиgtkspinbuttontypedef struct _gtkspinbutton gtkspinbutton;
enum gtkspinbuttonupdatepolicytypedef enum { gtk_update_always, gtk_update_if_valid } gtkspinbuttonupdatepolicy;
enum gtkspintypetypedef 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_button_configure ()void gtk_spin_button_configure (gtkspinbutton *spin_button, gtkadjustment *adjustment, gdouble climb_rate, guint digits); изменяет свойства существующей кнопки прокручивания. настройки, норма увеличения и число десятичных изменяются соответственно, после вызова этой функции.
gtk_spin_button_new ()gtkwidget* gtk_spin_button_new (gtkadjustment *adjustment, gdouble climb_rate, guint digits); создаёт новый gtkspinbutton.
gtk_spin_button_new_with_range ()gtkwidget* gtk_spin_button_new_with_range (gdouble min, gdouble max, gdouble step);
удобный конструктор позволяющий
создавать цифровой gtkspinbutton
без ручного создания регулировок.
значения первоначальных установок для
минимального значения и страничного
приращения 10 * помните, помните лучший способ работы
определить точность
gtk_spin_button_set_adjustment ()void gtk_spin_button_set_adjustment (gtkspinbutton *spin_button, gtkadjustment *adjustment);
пере устанавливает gtkadjustment
связанный с
gtk_spin_button_get_adjustment ()gtkadjustment* gtk_spin_button_get_adjustment (gtkspinbutton *spin_button); получает регулировки связанные с gtkspinbutton
gtk_spin_button_set_digits ()void gtk_spin_button_set_digits (gtkspinbutton *spin_button, guint digits);
устанавливает точность отображения
gtk_spin_button_set_increments ()void gtk_spin_button_set_increments (gtkspinbutton *spin_button, gdouble step, gdouble page); устанавливает шаговое и страничное приращение для spin_button. это регулирует скорость изменения значения при активизации стрелок кнопки вращения.
gtk_spin_button_set_range ()void gtk_spin_button_set_range (gtkspinbutton *spin_button, gdouble min, gdouble 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_int ()gint gtk_spin_button_get_value_as_int (gtkspinbutton *spin_button);
получает значение
gtk_spin_button_set_value ()void gtk_spin_button_set_value (gtkspinbutton *spin_button, gdouble value);
устанавливает значение
gtk_spin_button_set_update_policy ()void gtk_spin_button_set_update_policy (gtkspinbutton *spin_button, gtkspinbuttonupdatepolicy policy); устанавливает поведение обновления кнопки вращения. это определяет обновляется ли кнопка вращения всегда или только при установке допустимого значения.
gtk_spin_button_set_numeric ()void gtk_spin_button_set_numeric (gtkspinbutton *spin_button, gboolean numeric); устанавливает флажок определяющий если не цифровой текст может быть впечатан в кнопку вращения.
gtk_spin_button_spin ()void gtk_spin_button_spin (gtkspinbutton *spin_button, gtkspintype direction, gdouble increment); приращение или уменьшение значения кнопки вращения в указанном направлении указанным количеством.
gtk_spin_button_set_wrap ()void gtk_spin_button_set_wrap (gtkspinbutton *spin_button, gboolean wrap); устанавливает флажок который определяет начинать или нет прокручивание с противоположного конца когда достигнут предел диапазона.
gtk_spin_button_set_snap_to_ticks ()void gtk_spin_button_set_snap_to_ticks (gtkspinbutton *spin_button, gboolean snap_to_ticks); устанавливает политику относительно того исправляется ли значение до ближайшего шага приращения, когда кнопка прокручивания активизируется после обеспечения недопустимого значения.
gtk_spin_button_update ()void gtk_spin_button_update (gtkspinbutton *spin_button); заставляет самостоятельно обновлять кнопку прокручивания.
gtk_spin_button_get_digits ()guint gtk_spin_button_get_digits (gtkspinbutton *spin_button);
определяет точность
gtk_spin_button_get_increments ()void gtk_spin_button_get_increments (gtkspinbutton *spin_button, gdouble *step, gdouble *page);
определяет текущий шаг и страницу
приращения используемые
gtk_spin_button_get_numeric ()gboolean gtk_spin_button_get_numeric (gtkspinbutton *spin_button);
определяет можно ли вводить не цифровой
текст в кнопку прокручивания. смотрите
gtk_spin_button_get_range ()void gtk_spin_button_get_range (gtkspinbutton *spin_button, gdouble *min, gdouble *max);
определяет допустимый диапазон
gtk_spin_button_get_snap_to_ticks ()gboolean gtk_spin_button_get_snap_to_ticks (gtkspinbutton *spin_button);
определяет корректируется ли значение
до ближайшего шага. смотрите
gtk_spin_button_get_update_policy ()gtkspinbuttonupdatepolicy gtk_spin_button_get_update_policy (gtkspinbutton *spin_button);
определяет поведение обновления кнопки
прокручивания. смотрите
gtk_spin_button_get_value ()gdouble gtk_spin_button_get_value (gtkspinbutton *spin_button);
определяет значение в
gtk_spin_button_get_wrap ()gboolean gtk_spin_button_get_wrap (gtkspinbutton *spin_button);
определяет должна ли кнопка прокручивания
находиться в замкнутом цикле, то есть
при достижении конца диапазона начинать
прокрутку с противоположного конца.
смотрите
gtk_input_error#define gtk_input_error -1 детали свойствсвойство "
|
|
объект получающий сигнал. |
|
|
|
пользовательские данные помещаемые при подключении обработчика сигнала. |
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
для ввода текста а не цифр. |