Spec-Zone.ru › GTK 3.22

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 Чтение/Запись

Свойства дочерних элементов

gboolean expand Чтение/Запись
gboolean fill Чтение/Запись
GtkPackType pack-type Чтение/Запись
guint padding Чтение/Запись
gint position Чтение/Запись

Типы и значения

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

GtkBox

child

GtkWidget, который нужно добавить в box

expand

TRUE, если новому дочернему элементу нужно предоставить дополнительное место, выделенное для box. Дополнительное место будет распределено равномерно между всеми дочерними элементами, использующими этот параметр.

fill

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

padding

дополнительный отступ в пикселях между этим дочерним элементом и его соседями, сверх глобальной величины, указанной свойством “spacing”. Если 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. Дочерний элемент всегда занимает всю высоту горизонтального GtkBox и всю ширину вертикального GtkBox. Этот параметр влияет на другую размерность.

padding

дополнительный отступ в пикселях между этим дочерним элементом и его соседями, сверх глобальной величины, указанной свойством “spacing”. Если child является виджетом на одном из крайних концов box, то padding пикселей также помещаются между child и крайним концом 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” для box, определяющее, будут ли все дочерние элементы 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” для box, которое представляет количество пикселей между дочерними элементами box.

Параметры

box

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

Параметры

box

a GtkBox

child

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

position

новая позиция для child в списке дочерних элементов box, начиная с 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

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

a GtkBaselinePosition

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

См. также

GtkFrame, GtkGrid, GtkLayout

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API