Spec-Zone.ru › GTK 3.24

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

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

gboolean expand Чтение / Запись
gboolean fill Чтение / Запись
GtkPackType pack-type Чтение / Запись
guint padding Чтение / Запись
int 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 организует дочерние виджеты в одну строку или столбец в зависимости от значения свойства “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 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 to be added to 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

перемещаемый 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

запрашиваемый 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

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

Возвращает

позицию базовой линии

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

Позиция виджетов, выровненных по базовой линии, если доступно дополнительное пространство.

Владелец: 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

См. также

GtkGrid

© 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

Spec-Zone.ru

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