The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

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

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






Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру