GtkBox
GtkBox — Контейнер для размещения виджетов в одной строке или столбце
Функции
| GtkWidget * | gtk_box_new () |
| void | gtk_box_pack_start () |
| void | gtk_box_pack_end () |
| gboolean | gtk_box_get_homogeneous () |
| void | gtk_box_set_homogeneous () |
| gint | gtk_box_get_spacing () |
| void | gtk_box_set_spacing () |
| void | gtk_box_reorder_child () |
| void | gtk_box_query_child_packing () |
| void | gtk_box_set_child_packing () |
| GtkBaselinePosition | gtk_box_get_baseline_position () |
| void | gtk_box_set_baseline_position () |
| GtkWidget * | gtk_box_get_center_widget () |
| void | gtk_box_set_center_widget () |
Свойства
| GtkBaselinePosition | baseline-position | Чтение / Запись |
| gboolean | homogeneous | Чтение / Запись |
| int | spacing | Чтение / Запись |
Свойства дочерних элементов
Типы и значения
| struct | GtkBox |
| struct | GtkBoxClass |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkContainer
╰── GtkBox
├── GtkAppChooserWidget
├── GtkButtonBox
├── GtkColorChooserWidget
├── GtkColorSelection
├── GtkFileChooserButton
├── GtkFileChooserWidget
├── GtkFontChooserWidget
├── GtkFontSelection
├── GtkHBox
├── GtkInfoBar
├── GtkRecentChooserWidget
├── GtkShortcutsSection
├── GtkShortcutsGroup
├── GtkShortcutsShortcut
├── GtkStackSwitcher
├── GtkStatusbar
╰── GtkVBox
Реализованные интерфейсы
GtkBox реализует AtkImplementorIface, GtkBuildable и GtkOrientable.
Включаемые файлы
#include <gtk/gtk.h>
Описание
Виджет GtkBox организует дочерние виджеты в одну строку или столбец в зависимости от значения свойства “orientation”. Вдоль другой оси все дочерние элементы получают одинаковый размер. Конечно, свойства “halign” и “valign” дочерних элементов могут влиять на их размещение.
GtkBox использует понятие упаковки. Упаковка — это добавление виджетов с ссылкой на определённое положение в GtkContainer. В случае GtkBox есть две опорные точки: начало и конец. Для вертикального GtkBox начало определяется как верхняя часть, а конец — как нижняя. Для горизонтального GtkBox начало — это левая сторона, а конец — правая.
Используйте многократные вызовы gtk_box_pack_start() для добавления виджетов в GtkBox от начала к концу. Используйте gtk_box_pack_end() для добавления виджетов от конца к началу. Вы можете чередовать эти вызовы и добавлять виджеты с обоих концов одного GtkBox.
Поскольку GtkBox является GtkContainer, вы также можете использовать gtk_container_add() для вставки виджетов в ящик, и они будут упакованы с использованием значений по умолчанию для свойств expand и fill дочерних элементов. Используйте gtk_container_remove() для удаления виджетов из GtkBox.
Используйте gtk_box_set_homogeneous(), чтобы указать, будут ли все дочерние элементы GtkBox заставляться получать одинаковый размер.
Используйте gtk_box_set_spacing(), чтобы определить минимальное расстояние между всеми дочерними элементами в GtkBox. Обратите внимание, что отступ добавляется между дочерними элементами, а отступы, добавленные с помощью gtk_box_pack_start() или gtk_box_pack_end(), добавляются по обе стороны от соответствующего виджета.
Используйте gtk_box_reorder_child() для перемещения дочернего элемента GtkBox в другое место в контейнере.
Используйте gtk_box_set_child_packing() для сброса свойств expand, fill и padding дочерних элементов. Используйте gtk_box_query_child_packing() для запроса этих свойств.
Узлы CSS
GtkBox использует один узел CSS с именем box.
В горизонтальной ориентации узлы дочерних элементов всегда располагаются слева направо. Таким образом, :first-child всегда выбирает самый левый дочерний элемент, независимо от направления текста.
Функции
gtk_box_new ()
GtkWidget * gtk_box_new (GtkOrientation orientation,gint spacing);
Создает новый GtkBox.
Параметры
orientation | ориентация бокса. | |
spacing | количество пикселей, которые необходимо разместить по умолчанию между дочерними элементами. |
Возвращаемое значение
новый GtkBox.
С версии: 3.0
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 | a GtkBox | |
child | the GtkWidget to be added to | |
expand |
| |
fill |
| |
padding | дополнительное пространство в пикселях, которое необходимо разместить между этим дочерним элементом и его соседями, помимо глобального значения, указанного свойством “spacing”. Если |
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 | a GtkBox | |
child | the GtkWidget to be added to | |
expand |
| |
fill |
| |
padding | дополнительное пространство в пикселях, которое необходимо разместить между этим дочерним элементом и его соседями, помимо глобального значения, указанного свойством “spacing”. Если |
gtk_box_get_homogeneous ()
gboolean
gtk_box_get_homogeneous (GtkBox *box); Возвращает, является ли бокс однородным (все дочерние элементы имеют одинаковый размер). См. gtk_box_set_homogeneous().
Параметры
box | a GtkBox |
Возвращаемое значение
TRUE если бокс однородный.
gtk_box_set_homogeneous ()
void gtk_box_set_homogeneous (GtkBox *box,gboolean homogeneous);
Устанавливает свойство “homogeneous” box , определяющее, будет ли всем дочерним элементам box предоставлено равное пространство в боксе.
Параметры
box | a GtkBox | |
homogeneous | булево значение, |
gtk_box_get_spacing ()
gint
gtk_box_get_spacing (GtkBox *box); Получает значение, установленное gtk_box_set_spacing().
Параметры
box | a GtkBox |
Возвращаемое значение
расстояние между дочерними элементами
gtk_box_set_spacing ()
void gtk_box_set_spacing (GtkBox *box,gint spacing);
Устанавливает свойство “spacing” box , которое представляет собой количество пикселей, которые необходимо разместить между дочерними элементами box .
Параметры
box | a GtkBox | |
spacing | количество пикселей, которые необходимо разместить между дочерними элементами |
gtk_box_reorder_child ()
void gtk_box_reorder_child (GtkBox *box,GtkWidget *child,gint position);
Перемещает child в новое position в списке box дочерних элементов. Список содержит виджеты, упакованные GTK_PACK_START, а также виджеты, упакованные GTK_PACK_END, в порядке, в котором эти виджеты были добавлены к box.
Позиция виджета в списке box дочерних элементов определяет, куда виджет упаковывается в box. Дочерний виджет в определенной позиции списка будет упакован сразу после всех других виджетов того же типа упаковки, которые появляются ранее в списке.
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 | a GtkBox | |
child | запрашиваемый GtkWidget дочернего элемента | |
expand | указатель для возврата значения свойства expand дочернего элемента. | [out] |
fill | указатель для возврата значения свойства fill дочернего элемента. | [out] |
padding | указатель для возврата значения свойства padding дочернего элемента. | [out] |
pack_type | указатель для возврата значения свойства pack-type дочернего элемента. | [out] |
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.
Параметры
gtk_box_get_baseline_position ()
GtkBaselinePosition
gtk_box_get_baseline_position (GtkBox *box); Получает значение, установленное gtk_box_set_baseline_position().
Параметры
box | a GtkBox |
Возвращает
позицию базовой линии
Since: 3.10
gtk_box_set_baseline_position ()
void gtk_box_set_baseline_position (GtkBox *box,GtkBaselinePosition position);
Устанавливает позицию базовой линии для ящика. Это влияет только на горизонтальные ящики с по крайней мере одним дочерним элементом, выровненным по базовой линии. Если доступно больше вертикального пространства, чем требуется, и базовая линия не выделяется родителем, то position используется для выделения базовой линии по отношению к доступному дополнительному пространству.
Параметры
box | a GtkBox | |
position |
Since: 3.10
gtk_box_get_center_widget ()
GtkWidget *
gtk_box_get_center_widget (GtkBox *box); Возвращает центральный виджет ящика.
Параметры
box | a GtkBox |
Возвращает
центральный виджет или NULL в случае отсутствия установленного центрального виджета.
[transfer none][nullable]
Since: 3.12
gtk_box_set_center_widget ()
void gtk_box_set_center_widget (GtkBox *box,GtkWidget *widget);
Устанавливает центральный виджет; это дочерний виджет, который будет центрирован относительно полной ширины ящика, даже если дочерние элементы по обе стороны занимают разные объемы пространства.
Параметры
box | a GtkBox | |
widget | виджет, который нужно центрировать. | [allow-none] |
Since: 3.12
Типы и значения
struct GtkBox
struct GtkBox;
struct GtkBoxClass
struct GtkBoxClass {
GtkContainerClass parent_class;
};
Члены
Подробности свойств
Свойство “baseline-position”
“baseline-position” GtkBaselinePosition
Позиция виджетов, выровненных по базовой линии, если доступно дополнительное пространство.
Владелец: GtkBox
Флаги: Чтение / Запись
Значение по умолчанию: GTK_BASELINE_POSITION_CENTER
Свойство “homogeneous”
“homogeneous” gboolean
Указывает, должны ли все дочерние элементы иметь одинаковый размер.
Владелец: GtkBox
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “spacing”
“spacing” int
Величина отступа между дочерними элементами.
Владелец: GtkBox
Флаги: Чтение / Запись
Допустимые значения: >= 0
Значение по умолчанию: 0
Подробности свойств дочерних элементов
Свойство “expand” дочернего элемента
“expand” gboolean
Определяет, получит ли дочерний элемент дополнительное пространство при увеличении родительского элемента.
Обратите внимание, что значение по умолчанию для этого свойства равно FALSE для GtkBox, но GtkHBox, GtkVBox и другие подклассы используют старое значение по умолчанию TRUE.
Примечание: Свойства “hexpand” или “vexpand” являются предпочтительным способом влияния на получение дочерним элементом дополнительного пространства, устанавливая соответствующее свойство expand дочернего элемента в зависимости от ориентации ящика.
В отличие от “hexpand”, свойство expand дочернего элемента не приводит к расширению самого ящика.
Владелец: GtkBox
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “fill” дочернего элемента
“fill” gboolean
Определяет, должен ли дочерний элемент заполнить дополнительное пространство или использовать его как отступ.
Примечание: Свойства “halign” или “valign” являются предпочтительным способом влияния на заполнение дочерним элементом доступного пространства, устанавливая соответствующее свойство align дочернего элемента в зависимости от ориентации ящика на GTK_ALIGN_FILL для заполнения или на другое значение для отказа от заполнения.
Владелец: GtkBox
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “pack-type” дочернего элемента
“pack-type” GtkPackType
Тип GtkPackType, указывающий, упаковывается ли дочерний элемент относительно начала или конца родительского элемента.
Владелец: GtkBox
Флаги: Чтение / Запись
Значение по умолчанию: GTK_PACK_START
Свойство “padding” дочернего элемента
“padding” guint
Дополнительное пространство между дочерним элементом и его соседями в пикселях.
Примечание: Свойства CSS padding являются предпочтительным способом добавления пространства между виджетами, устанавливая соответствующие отступы в зависимости от ориентации ящика.
Владелец: GtkBox
Флаги: Чтение / Запись
Допустимые значения: <= G_MAXINT
Значение по умолчанию: 0
Свойство “position” дочернего элемента
“position” int
Индекс дочернего элемента в родительском элементе.
Владелец: GtkBox
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: 0
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkBox.html