Spec-Zone.ru › GTK 3.20

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() для вставки виджетов в ящик, и они будут размещены с использованием значений по умолчанию для свойств 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 для добавления в 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

a GtkBox

child

the 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

a GtkBox

Возвращаемое значение

TRUE если рамка однородная.

gtk_box_set_homogeneous ()

void
gtk_box_set_homogeneous (GtkBox *box,
                         gboolean homogeneous);

Устанавливает свойство “homogeneous” для box, контролируя, получают ли все дочерние элементы box равное пространство в рамке.

Параметры

box

a GtkBox

homogeneous

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

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

Параметры

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

указатель на место возврата свойства 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.

Параметры

box

a GtkBox

child

the GtkWidget дочернего элемента для установки

expand

новое значение свойства expand дочернего элемента

fill

новое значение свойства fill дочернего элемента

padding

новое значение свойства padding дочернего элемента

pack_type

новое значение свойства pack-type дочернего элемента

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

a GtkBaselinePosition

С: 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

См. также

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.20/GtkBox.html

Spec-Zone.ru

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