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() для вставки виджетов в область, и они будут размещены с использованием значения по умолчанию для свойств расширения и заполнения дочерних элементов. Используйте 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() для сброса свойств расширения, заполнения и отступа дочерних элементов. Используйте 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 | ||
child | 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 | ||
child | GtkWidget для добавления в | |
expand |
| |
fill |
| |
padding | дополнительный отступ в пикселях между этим дочерним элементом и его соседями, сверх глобальной величины, указанной свойством “spacing”. Если |
gtk_box_get_homogeneous ()
gboolean
gtk_box_get_homogeneous (GtkBox *box); Возвращает, является ли ящик однородным (все дочерние элементы имеют одинаковый размер). Смотрите gtk_box_set_homogeneous().
Параметры
box |
Возвращаемое значение
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 |
Возвращаемое значение
отступ между дочерними элементами
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 | указатель для возврата значения свойства расширения дочернего элемента. | [out] |
fill | указатель для возврата значения свойства заполнения дочернего элемента. | [out] |
padding | указатель для возврата значения свойства отступа дочернего элемента. | [out] |
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.
Параметры
box | a GtkBox | |
child | the GtkWidget дочернего элемента для установки | |
expand | новое значение свойства расширения дочернего элемента | |
fill | новое значение свойства заполнения дочернего элемента | |
padding | новое значение свойства отступа дочернего элемента | |
pack_type | новое значение свойства типа упаковки дочернего элемента |
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
Позиция виджетов, выровненных по базовой линии, если доступно дополнительное пространство.
Флаги: Чтение / Запись
Значение по умолчанию: 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.22/GtkBox.html