| |
|
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
+----GtkSpinButtonGtkSpinButton осуществляет 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 lastGtkSpinButton идеальный способ позволяющий пользователю установить значение некоторого свойства. Вместо непосредственного ввода значения в 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; }
typedef struct _GtkSpinButton GtkSpinButton;
entry это GtkEntry
часть виджета GtkSpinButton
и может соответственно использоваться.
Все другие поля содержат закрытые данные
и могут модифицироваться только функциями
описанными ниже.
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
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
|
Для ввода текста а не цифр. |
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |