| |
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; }
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-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |