GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Implemented Interfaces | Properties | Child Properties |
GtkBoxGtkBox Базовый класс для контейнеров |
#include <gtk/gtk.h>
GtkBox;
GtkBoxChild;
void gtk_box_pack_start (GtkBox *box,
GtkWidget *child,
gboolean expand,
gboolean fill,
guint padding);
void gtk_box_pack_end (GtkBox *box,
GtkWidget *child,
gboolean expand,
gboolean fill,
guint padding);
void gtk_box_pack_start_defaults (GtkBox *box,
GtkWidget *widget);
void gtk_box_pack_end_defaults (GtkBox *box,
GtkWidget *widget);
gboolean gtk_box_get_homogeneous (GtkBox *box);
void gtk_box_set_homogeneous (GtkBox *box,
gboolean homogeneous);
gint gtk_box_get_spacing (GtkBox *box);
void gtk_box_set_spacing (GtkBox *box,
gint spacing);
void gtk_box_reorder_child (GtkBox *box,
GtkWidget *child,
gint position);
void gtk_box_query_child_packing (GtkBox *box,
GtkWidget *child,
gboolean *expand,
gboolean *fill,
guint *padding,
GtkPackType *pack_type);
void gtk_box_set_child_packing (GtkBox *box,
GtkWidget *child,
gboolean expand,
gboolean fill,
guint padding,
GtkPackType pack_type);
GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkWidget
+----GtkContainer
+----GtkBox
+----GtkButtonBox
+----GtkVBox
+----GtkHBox
GtkBox реализует AtkImplementorIface.
"homogeneous" gboolean : Read / Write
"spacing" gint : Read / Write
"expand" gboolean : Read / Write
"fill" gboolean : Read / Write
"pack-type" GtkPackType : Read / Write
"padding" guint : Read / Write
"position" gint : Read / Write
GtkBox это абстрактный виджет включающий функциональность для специального вида контейнера, который организует переменное количество виджетов в прямоугольной области. GtkBox в настоящее время имеет два производных класса, GtkHBox и GtkVBox.
Прямоугольная область GtkBox организует содержимое или в единственную строку или в единственный столбец, в зависимости от типа контейнера, GtkHBox или GtkVBox соответственно. Таким образом, все дочерние виджеты GtkBox имеют с одной строны одинаковый размер, который определяется либо по высоте строки, либо по ширине столбца.
GtkBox использует понятие упаковка (packing). Упаковка обращается к дополнительным виджетам с информацией для определённой позиции в GtkContainer. Для GtkBox, есть две относительные позиции: start и end контейнера. Для GtkVBox, начало определяется как верх контейнера, а конец как его низ. Для GtkHBox начало определяется как левая сторона, а конец определяется как правая сторона.
Используйте многократные вызовы
gtk_box_pack_start()
для упаковки виджетов в GtkBox от начала
до конца. Используйте gtk_box_pack_end()
для добавления виджетов от конца в
начало. Вы можете перемешивая эти вызовы
вставлять виджеты с обоих концов одного
и того же GtkBox.
Используйте gtk_box_pack_start_defaults()
или gtk_box_pack_end_defaults()
для упаковки виджетов в GtkBox, если вам
не нужно определять атрибуты expand
,
fill
, или padding
.
Поскольку GtkBox - это GtkContainer,
вы можете так же использовать
gtk_container_add()
для вставки виджетов в контейнер, и они
будут упакованы как если бы использовалась
gtk_box_pack_start_defaults()
.
Используйте gtk_container_remove()
для удаления виджетов из GtkBox.
Используйте gtk_box_set_homogeneous()
для определения должны ли все дочерние
виджеты GtkBox занимать одинаковое
пространство.
Используйте gtk_box_set_spacing()
для определения минимального интервала
между всеми дочерними виджетами в
GtkBox.
Используйте gtk_box_reorder_child()
для перемещения дочерних виджетов
внутри контейнера GtkBox.
Используйте gtk_box_set_child_packing()
для сброса атрибутов expand
,
fill
и padding
любого
дочернего виджета GtkBox. Используйте
gtk_box_query_child_packing()
для запроса этих полей.
typedef struct {
GList *children;
gint16 spacing;
guint homogeneous : 1;
} GtkBox;
GtkBox описывает образец GtkBox и содержит следующие поля. (Эти поля должны рассматриваться только для чтения. Они не должны устанавливаться приложением.)
GList
* |
Список дочерних виджетов GtkBox. Данные представлены в виде списка структур типа GtkBoxChild. |
gint16
|
Количество пикселей между дочерними
виджетами GtkBox, по умолчанию ноль.
Используйте |
guint
|
Значение |
typedef struct {
GtkWidget *widget;
guint16 padding;
guint expand : 1;
guint fill : 1;
guint pack : 1;
guint is_secondary : 1;
} GtkBoxChild;
GtkBoxChild содержит дочерние виджеты GtkBox
и описывает как они упакованы в GtkBox.
Используйте gtk_box_query_child_packing()
и gtk_box_set_child_packing()
для запроса и установки полей padding
,
expand
, fill
и pack
.
GtkBoxChild содержит следующие поля. (Это поля только для чтения. Они не должны изменяться приложением.)
GtkWidget * |
Дочерний виджет упакованный в GtkBox. |
guint16
|
Количество дополнительных пикселей между соседними дочерними виджетами, устанавливается при упаковке, по умолчанию ноль. |
guint |
Флаг указывающий должен ли данный
виджет получить дополнительное
пространство. Любое дополнительное
пространство в родительском GtkBox
распределяется между дочерними
виджетами, если это атрибут установлен
в значение |
guint |
Флаг указывает заполнено ли
дополнительное пространство этим
виджетом, согласно атрибуту |
guint |
GtkPackType указывающий упаковывается ли дочерний виджет с начала (верх/лево) или с конца (низ/право) GtkBox. |
void gtk_box_pack_start (GtkBox *box,
GtkWidget *child,
gboolean expand,
gboolean fill,
guint padding);
Добавляет child
в box
,
упаковывает относительно начала
контейнера box
. Виджет child
упаковывается после любого другого
дочернего виджета упакованного с начала
в контейнер box
.
|
|
|
GtkWidget для добавления
в |
|
|
|
|
|
Интервал в пикселах между соседними,
дочерними виджетами, помимо общего
количества определенного параметром
|
void gtk_box_pack_end (GtkBox *box,
GtkWidget *child,
gboolean expand,
gboolean fill,
guint padding);
Добавляет child
в box
,
упаковывая относительно конца контейнера
box
. Виджет child
упаковывается после (начиная с конца)
любого другого виджета упакованного
относительно конца контейнера box
.
|
|
|
GtkWidget для добавления
в |
|
|
|
|
|
Интервал в пикселах между соседними,
дочерними виджетами, помимо общего
количества определенного параметром
spacing в GtkBox. Если
child это виджет в одном из
относительных концов контейнера box,
то |
void gtk_box_pack_start_defaults (GtkBox *box,
GtkWidget *widget);
Добавляет widget
в box
,
упаковывая относительно начала контейнера
box
. Виджет упаковывается
после любого другого виджета относительно
начала контейнера box
.
Параметры упаковки виджета expand
,
fill
и padding
в
GtkBoxChild, являются значениями по умолчанию,
TRUE
,
TRUE
,
и 0, соответственно.
|
|
|
GtkWidget для добавления
в |
void gtk_box_pack_end_defaults (GtkBox *box,
GtkWidget *widget);
Добавляет widget
в box, упаковывая
относительно конца контейнера box
.
Виджет упаковывается после любого
другого виджета относительно конца
контейнера box.
Параметры упаковки виджета expand,
fill и padding
в GtkBoxChild, являются
значениями по умолчанию, TRUE
,
TRUE
,
и 0, соответственно.
|
|
|
GtkWidget для добавления в box. |
gboolean gtk_box_get_homogeneous (GtkBox *box);Определяет занимают ли виджеты одинаковое пространство. Смотрите
gtk_box_set_homogeneous()
.
|
|
Возвращает: |
|
void gtk_box_set_homogeneous (GtkBox *box,
gboolean homogeneous);
Устанавливает поле homogeneous
GtkBox, контролируя
действительно ли всем виджетам в
контейнере box
распределено
одинаковое пространство.
|
|
|
Логическое значение, |
gint gtk_box_get_spacing (GtkBox *box);Определяет значение установленное с помощью
gtk_box_set_spacing()
.
|
|
Возвращает: |
Интервал между соседними виджетами |
void gtk_box_set_spacing (GtkBox *box,
gint spacing);
Устанавливает поле spacing
объекта GtkBox, которое
определяет размер интервала между
виджетами в пикселах в контейнере box
.
|
|
|
Количество пикселей между дочерними виджетами. |
void gtk_box_reorder_child (GtkBox *box,
GtkWidget *child,
gint position);
Перемещает child
в новую
position
в списке дочерних
виджетов контейнера box
.
Список это поле children
GtkBox, а также оба виджета
упакованных как GTK_PACK_START
и как GTK_PACK_END,
в порядке в котором эти виджеты были
добавлены к box
.
Позиция виджета в списке дочерних
виджетов контейнера box
определяет место упаковки виджета в
контейнере box
. Дочерний
виджет в некоторой позиции списка
упаковывается после всех виджетов этого
же упаковочного типа которые находятся
перед ним в списке.
|
|
|
GtkWidget для перемещения. |
|
Новая позиция для |
void gtk_box_query_child_packing (GtkBox *box,
GtkWidget *child,
gboolean *expand,
gboolean *fill,
guint *padding,
GtkPackType *pack_type);
Возвращает информацию об упаковке child
в box
.
|
|
|
GtkWidget для запроса информации. |
|
Значение поля |
|
Значение поля |
|
Значение поля |
|
Значение поля |
void gtk_box_set_child_packing (GtkBox *box,
GtkWidget *child,
gboolean expand,
gboolean fill,
guint padding,
GtkPackType pack_type);
Устанавливает способ упаковки child
в box
.
|
|
|
GtkWidget для установки значений. |
|
Устанавливает значение поля |
|
Устанавливает значение поля fill в GtkBoxChild. |
|
Устанавливает значение поля padding в GtkBoxChild. |
|
Устанавливает значение поля pack в GtkBoxChild. |
homogeneous
""homogeneous" gboolean : Read / WriteДолжны ли все виджеты быть одного размера.
Значение по умолчанию: FALSE
Свойство "
spacing
""spacing" gint : Read / WriteИнтервал между дочерними виджетами.
Допустимые значения: >= 0
Значение по умолчанию: 0
Детали дочерних свойств
Дочернее свойство "
expand
""expand" gboolean : Read / WriteДолжен ли виджет занимать все свободное пространство когда увеличивается его родитель.
Значение по умолчанию: TRUE
Дочернее свойство "
fill
""fill" gboolean : Read / WriteДолжно ли дополнительное пространство распределяться для виджета или просто использоваться как дополнение.
Значение по умолчанию: TRUE
Дочернее свойство "
pack-type
""pack-type" GtkPackType : Read / WriteGtkPackType указывает тип упаковки в контейнере, сначала или с конца.
Значение по умолчанию: GTK_PACK_START
Дочернее свойство "
padding
""padding" guint : Read / WriteИнтервал между соседними виджетами, в пикселах.
Допустимые значения: <= G_MAXINT
Значение по умолчанию: 0
Дочернее свойство "
position
""position" gint : Read / WriteПеречень дочерних виджетов в радителе.
Допустимые значения: >= -1
Значение по умолчанию: 0
Смотрите также
Наследственный класс который организует виджеты горизонтально в одну строку. |
|
Наследственный класс организующий виджеты в один столбец. |
|
GtkWidget полезный для изображения границ вокруг GtkBox. |
|
GtkContainer для организации виджетов в сетку, вместо независимых строк и столбцов. |
|
GtkContainer для организации произвольного размещения виджетов. |