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 | Чтение/Запись |
| gint | 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 организует дочерние виджеты в прямоугольной области.
Прямоугольная область GtkBox организована либо в одну строку, либо в один столбец дочерних виджетов в зависимости от ориентации. Таким образом, все дочерние элементы GtkBox выделяются в одной размерности, которая представляет собой высоту строки или ширину столбца.
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() для запроса этих значений.
Обратите внимание, что однострочный или одностолбцовый GtkGrid обеспечивает точно такую же функциональность, что и GtkBox.
Узлы 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 для добавления в | |
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 для добавления в | |
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 равное пространство в рамке.
gtk_box_get_spacing ()
gint
gtk_box_get_spacing (GtkBox *box); Получает значение, установленное функцией gtk_box_set_spacing().
Параметры
box | a GtkBox |
Возвращаемое значение
отступ между элементами
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 | the 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 |
Возвращает
позицию базовой линии
С: 3.10
gtk_box_set_baseline_position ()
void gtk_box_set_baseline_position (GtkBox *box,GtkBaselinePosition position);
Устанавливает позицию базовой линии для поля. Это влияет только на горизонтальные поля с по меньшей мере одним выровненным по базовой линии дочерним элементом. Если доступно больше вертикального пространства, чем запрошено, и базовая линия не выделяется родителем, то используется position для выделения базовой линии относительно доступного дополнительного пространства.
Параметры
box | a GtkBox | |
position |
С: 3.10
gtk_box_get_center_widget ()
GtkWidget *
gtk_box_get_center_widget (GtkBox *box); Извлекает центральный виджет поля.
Параметры
box | a GtkBox |
Возвращает
центральный виджет или NULL в случае, если центральный виджет не установлен.
[transfer none][nullable]
С: 3.12
gtk_box_set_center_widget ()
void gtk_box_set_center_widget (GtkBox *box,GtkWidget *widget);
Устанавливает центральный виджет; это дочерний виджет, который будет центрирован по отношению ко всей ширине поля, даже если дочерние элементы с обеих сторон занимают разное количество места.
Параметры
box | a GtkBox | |
widget | виджет для центрирования. | [allow-none] |
С: 3.12
Типы и значения
struct GtkBox
struct GtkBox;
struct GtkBoxClass
struct GtkBoxClass {
GtkContainerClass parent_class;
};
Члены
Подробности свойств
Свойство “baseline-position”
“baseline-position” GtkBaselinePosition
Позиция виджетов, выровненных по базовой линии, если доступно дополнительное пространство.
Флаги: Чтение / Запись
Значение по умолчанию: GTK_BASELINE_POSITION_CENTER
Свойство “homogeneous”
“homogeneous” gboolean
Определяет, должны ли все дочерние элементы иметь одинаковый размер.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “spacing”
“spacing” gint
Количество пространства между дочерними элементами.
Флаги: Чтение / Запись
Допустимые значения: >= 0
Значение по умолчанию: 0
Подробное описание свойств дочерних элементов
Свойство “expand” дочернего элемента
“expand” gboolean
Указывает, должен ли дочерний элемент получать дополнительное пространство при увеличении размера родительского элемента.
Обратите внимание, что по умолчанию для GtkBox это значение FALSE, но для GtkHBox, GtkVBox и других подклассов используется старое значение по умолчанию TRUE.
Обратите внимание, что свойства “halign”, “valign”, “hexpand” и “vexpand” предпочтительнее для управления распределением размера дочерних элементов в контейнерах.
В отличие от “hexpand”, свойство expand дочернего элемента не вызывает расширения самого контейнера.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “fill” дочернего элемента
“fill” gboolean
Указывает, должен ли дочерний элемент получать дополнительное пространство при увеличении размера родительского элемента.
Обратите внимание, что свойства “halign”, “valign”, “hexpand” и “vexpand” предпочтительнее для управления распределением размера дочерних элементов в контейнерах.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
Свойство “pack-type” дочернего элемента
“pack-type” GtkPackType
Тип GtkPackType, указывающий, с какой стороны родительского элемента будет размещаться дочерний элемент (начало или конец).
Флаги: Чтение / Запись
Значение по умолчанию: GTK_PACK_START
Свойство “padding” дочернего элемента
“padding” guint
Дополнительное пространство между дочерним элементом и его соседями в пикселях.
Флаги: Чтение / Запись
Допустимые значения: <= G_MAXINT
Значение по умолчанию: 0
Свойство “position” дочернего элемента
“position” gint
Индекс дочернего элемента в родительском элементе.
Флаги: Чтение / Запись
Допустимые значения: >= -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.20/GtkBox.html