Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Implemented Interfaces  |  Properties  |  Child Properties

GtkBox

GtkBox Базовый класс для контейнеров

Краткое описание

#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() для запроса этих полей.

Детали

GtkBox

typedef struct { GList *children; gint16 spacing; guint homogeneous : 1; } GtkBox;

GtkBox описывает образец GtkBox и содержит следующие поля. (Эти поля должны рассматриваться только для чтения. Они не должны устанавливаться приложением.)

GList * children;

Список дочерних виджетов GtkBox. Данные представлены в виде списка структур типа GtkBoxChild.

gint16 spacing;

Количество пикселей между дочерними виджетами GtkBox, по умолчанию ноль. Используйте gtk_box_set_spacing() для установки этого поля.

guint homogeneous;

Значение TRUE в данном поле заставит дочерние виджеты в GtkBox иметь одинаковый размер; FALSE по умолчанию. Используйте gtk_box_set_homogeneous() для установки этого поля.


GtkBoxChild

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 * widget;

Дочерний виджет упакованный в GtkBox.

guint16 padding;

Количество дополнительных пикселей между соседними дочерними виджетами, устанавливается при упаковке, по умолчанию ноль.

guint expand;

Флаг указывающий должен ли данный виджет получить дополнительное пространство. Любое дополнительное пространство в родительском GtkBox распределяется между дочерними виджетами, если это атрибут установлен в значение TRUE; устанавливается при упаковке, TRUE по умолчанию.

guint fill;

Флаг указывает заполнено ли дополнительное пространство этим виджетом, согласно атрибуту expand, фактически, или используется как дополнение вокруг виджета; устанавливается при упаковке, TRUE по умолчанию.

guint pack;

GtkPackType указывающий упаковывается ли дочерний виджет с начала (верх/лево) или с конца (низ/право) GtkBox.


gtk_box_pack_start ()

void gtk_box_pack_start (GtkBox *box, GtkWidget *child, gboolean expand, gboolean fill, guint padding);

Добавляет child в box, упаковывает относительно начала контейнера box. Виджет child упаковывается после любого другого дочернего виджета упакованного с начала в контейнер box.

box :

GtkBox.

child :

GtkWidget для добавления в box.

expand :

TRUE если новый виджет занимает всё дополнительное пространство контейнера box. Дополнительное пространство распределяется между всеми дочерними виджетами контейнера box которые используют эту опцию.

fill :

TRUE если пространство полученное для child с опцией expand фактически распределено для child, вместо простого дополнения. Этот параметр не имеет эффекта если expand установлен в FALSE. Дочерний виджет всегда заполняет всю высоту контейнера GtkHBox и всю ширину контейнера GtkVBox. Эта опция влияет на противоположные измерения.

padding :

Интервал в пикселах между соседними, дочерними виджетами, помимо общего количества определенного параметром spacing в GtkBox. Если child это виджет в одном из относительных концов контейнера box, то padding пикселы также помещаются между child и относительной границей контейнера box.


gtk_box_pack_end ()

void gtk_box_pack_end (GtkBox *box, GtkWidget *child, gboolean expand, gboolean fill, guint padding);

Добавляет child в box, упаковывая относительно конца контейнера box. Виджет child упаковывается после (начиная с конца) любого другого виджета упакованного относительно конца контейнера box.

box :

GtkBox.

child :

GtkWidget для добавления в box.

expand :

TRUE если новый виджет занимает всё дополнительное пространство контейнера box. Дополнительное пространство распределяется между всеми дочерними виджетами контейнера box которые используют эту опцию.

fill :

TRUE если пространство полученное для child с опцией expand фактически распределено для child, вместо простого дополнения. Этот параметр не имеет эффекта если expand установлен в FALSE. Дочерний виджет всегда заполняет всю высоту контейнера GtkHBox и всю ширину контейнера GtkVBox. Эта опция влияет на противоположные измерения.

padding :

Интервал в пикселах между соседними, дочерними виджетами, помимо общего количества определенного параметром spacing в GtkBox. Если child это виджет в одном из относительных концов контейнера box, то padding пикселы также помещаются между child и относительной границей контейнера box.


gtk_box_pack_start_defaults ()

void gtk_box_pack_start_defaults (GtkBox *box, GtkWidget *widget);

Добавляет widget в box, упаковывая относительно начала контейнера box. Виджет упаковывается после любого другого виджета относительно начала контейнера box.

Параметры упаковки виджета expand, fill и padding в GtkBoxChild, являются значениями по умолчанию, TRUE, TRUE, и 0, соответственно.

box :

GtkBox.

widget :

GtkWidget для добавления в box.


gtk_box_pack_end_defaults ()

void gtk_box_pack_end_defaults (GtkBox *box, GtkWidget *widget);

Добавляет widget в box, упаковывая относительно конца контейнера box. Виджет упаковывается после любого другого виджета относительно конца контейнера box.

Параметры упаковки виджета expand, fill и padding в GtkBoxChild, являются значениями по умолчанию, TRUE, TRUE, и 0, соответственно.

box :

GtkBox.

widget :

GtkWidget для добавления в box.


gtk_box_get_homogeneous ()

gboolean    gtk_box_get_homogeneous         (GtkBox *box);

Определяет занимают ли виджеты одинаковое пространство. Смотрите gtk_box_set_homogeneous().

box :

GtkBox

Возвращает:

TRUE если виджеты в контейнере занимают одинаковое пространство.


gtk_box_set_homogeneous ()

void gtk_box_set_homogeneous (GtkBox *box, gboolean homogeneous);

Устанавливает поле homogeneous GtkBox, контролируя действительно ли всем виджетам в контейнере box распределено одинаковое пространство.

box :

GtkBox.

homogeneous :

Логическое значение, TRUE для создания равных распределений, FALSE для разных распределений.


gtk_box_get_spacing ()

gint        gtk_box_get_spacing             (GtkBox *box);

Определяет значение установленное с помощью gtk_box_set_spacing().

box :

GtkBox

Возвращает:

Интервал между соседними виджетами


gtk_box_set_spacing ()

void gtk_box_set_spacing (GtkBox *box, gint spacing);

Устанавливает поле spacing объекта GtkBox, которое определяет размер интервала между виджетами в пикселах в контейнере box.

box :

GtkBox.

spacing :

Количество пикселей между дочерними виджетами.


gtk_box_reorder_child ()

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. Дочерний виджет в некоторой позиции списка упаковывается после всех виджетов этого же упаковочного типа которые находятся перед ним в списке.

box :

GtkBox.

child :

GtkWidget для перемещения.

position :

Новая позиция для child в списке children объекта GtkBox, начиная с 0. Если отрицательное, виджет перемещается в конец списка.


gtk_box_query_child_packing ()

void gtk_box_query_child_packing (GtkBox *box, GtkWidget *child, gboolean *expand, gboolean *fill, guint *padding, GtkPackType *pack_type);

Возвращает информацию об упаковке child в box.

box :

GtkBox.

child :

GtkWidget для запроса информации.

expand :

Значение поля expand в GtkBoxChild.

fill :

Значение поля fill в GtkBoxChild.

padding :

Значение поля padding в GtkBoxChild.

pack_type :

Значение поля pack в GtkBoxChild.


gtk_box_set_child_packing ()

void gtk_box_set_child_packing (GtkBox *box, GtkWidget *child, gboolean expand, gboolean fill, guint padding, GtkPackType pack_type);

Устанавливает способ упаковки child в box.

box :

GtkBox.

child :

GtkWidget для установки значений.

expand :

Устанавливает значение поля expand в GtkBoxChild.

fill :

Устанавливает значение поля fill в GtkBoxChild.

padding :

Устанавливает значение поля padding в GtkBoxChild.

pack_type :

Устанавливает значение поля 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 / Write

GtkPackType указывает тип упаковки в контейнере, сначала или с конца.

Значение по умолчанию: GTK_PACK_START


Дочернее свойство "padding"

  "padding"              guint                 : Read / Write

Интервал между соседними виджетами, в пикселах.

Допустимые значения: <= G_MAXINT

Значение по умолчанию: 0


Дочернее свойство "position"

  "position"             gint                  : Read / Write

Перечень дочерних виджетов в радителе.

Допустимые значения: >= -1

Значение по умолчанию: 0

Смотрите также

GtkHBox

Наследственный класс который организует виджеты горизонтально в одну строку.

GtkVBox

Наследственный класс организующий виджеты в один столбец.

GtkFrame

GtkWidget полезный для изображения границ вокруг GtkBox.

GtkTable

GtkContainer для организации виджетов в сетку, вместо независимых строк и столбцов.

GtkLayout

GtkContainer для организации произвольного размещения виджетов.