Spec-Zone.ru › GTK 3.24

GtkFrame

GtkFrame — Контейнер с декоративной рамкой и необязательной надписью

Функции

GtkWidget * gtk_frame_new ()
void gtk_frame_set_label ()
void gtk_frame_set_label_widget ()
void gtk_frame_set_label_align ()
void gtk_frame_set_shadow_type ()
const gchar * gtk_frame_get_label ()
void gtk_frame_get_label_align ()
GtkWidget * gtk_frame_get_label_widget ()
GtkShadowType gtk_frame_get_shadow_type ()

Свойства

char * label Чтение/Запись
GtkWidget * label-widget Чтение/Запись
float label-xalign Чтение/Запись
float label-yalign Чтение/Запись
GtkShadowType shadow-type Чтение/Запись

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

struct GtkFrame
struct GtkFrameClass

Иерархия объектов

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkBin
                    ╰── GtkFrame
                        ╰── GtkAspectFrame

Реализованные интерфейсы

GtkFrame реализует AtkImplementorIface и GtkBuildable.

Включенные заголовки

#include <gtk/gtk.h>

Описание

Элемент рамки — это контейнер, который окружает свой дочерний элемент декоративной рамкой и необязательной надписью. Если надпись присутствует, она отображается в проёме на верхней стороне рамки. Положение надписи можно контролировать с помощью gtk_frame_set_label_align().

GtkFrame как GtkBuildable

Реализация GtkFrame интерфейса GtkBuildable поддерживает размещение дочернего элемента в позиции надписи, задавая атрибут “type” элемента <child> как “label”. Дочерний элемент обычного содержимого может быть задан без указания атрибута типа <child>.

Пример фрагмента определения пользовательского интерфейса с GtkFrame:

CSS-узлы

<object class="GtkFrame">
  <child type="label">
    <object class="GtkLabel" id="frame-label"/>
  </child>
  <child>
    <object class="GtkEntry" id="frame-content"/>
  </child>
</object>

GtkFrame имеет основной CSS-узел с именем “frame” и подчинённый узел с именем “border”. Узел “border” используется для отрисовки видимой границы. Вид границы можно настроить с помощью CSS-свойств, таких как “border-style”, на узле “border”.

Узлу “border” можно присвоить класс стиля “.flat”, что используется темами для отключения отрисовки границы. Для этого из кода вызовите gtk_frame_set_shadow_type() со значением GTK_SHADOW_NONE, чтобы добавить класс “.flat” или любой другой тип тени, чтобы его удалить.

Функции

gtk_frame_new ()

GtkWidget *
gtk_frame_new (const gchar *label);

Создаёт новый GtkFrame с необязательной меткой label. Если label имеет значение NULL, метка опускается.

Параметры

label

текст, используемый в качестве метки фрейма.

[allow-none]

Возвращает

новый виджет GtkFrame

gtk_frame_set_label ()

void
gtk_frame_set_label (GtkFrame *frame,
                     const gchar *label);

Удаляет текущий виджет метки “label-widget”. Если label не равно NULL, создаёт новый GtkLabel с этим текстом и добавляет его в качестве виджета метки “label-widget”.

Параметры

frame

объект GtkFrame

label

текст, используемый в качестве метки фрейма.

[allow-none]

gtk_frame_set_label_widget ()

void
gtk_frame_set_label_widget (GtkFrame *frame,
                            GtkWidget *label_widget);

Устанавливает виджет метки “label-widget” для фрейма. Это виджет, который будет отображаться вверху фрейма в качестве заголовка.

Параметры

frame

объект GtkFrame

label_widget

новый виджет метки.

[nullable]

gtk_frame_set_label_align ()

void
gtk_frame_set_label_align (GtkFrame *frame,
                           gfloat xalign,
                           gfloat yalign);

Устанавливает выравнивание метки виджета фрейма. Значения по умолчанию для недавно созданного фрейма — 0.0 и 0.5.

Параметры

frame

объект GtkFrame

xalign

Позиция метки по горизонтали. Значение 0.0 соответствует выравниванию по левому краю; 1.0 — по правому.

yalign

Вертикальное выравнивание метки. Значение 0.0 — выравнивание под фреймом; 1.0 — над фреймом. Если значения равны точно 0.0 или 1.0, зазор в фрейме не будет нарисован, так как метка будет полностью над или под фреймом.

gtk_frame_set_shadow_type ()

void
gtk_frame_set_shadow_type (GtkFrame *frame,
                           GtkShadowType type);

Устанавливает “shadow-type” для frame, т. е. рисуется ли он без (GTK_SHADOW_NONE) или с (другими значениями) видимой границей. Значения, отличные от GTK_SHADOW_NONE, обрабатываются GtkFrame идентично. Выбранный тип применяется путём удаления или добавления класса .flat к узлу CSS, названному border.

Параметры

frame

объект GtkFrame

type

новый GtkShadowType

gtk_frame_get_label ()

const gchar *
gtk_frame_get_label (GtkFrame *frame);

Если виджет метки фрейма — GtkLabel, возвращает текст в виджете метки. (Фрейм будет иметь виджет метки GtkLabel, если в gtk_frame_new() был передан аргумент, отличный от NULL.)

Параметры

frame

объект GtkFrame

Возвращает

текст метки или NULL, если виджета метки не было или он не был виджетом GtkLabel. Эта строка принадлежит GTK+ и не должна быть изменена или освобождена.

[nullable]

gtk_frame_get_label_align ()

void
gtk_frame_get_label_align (GtkFrame *frame,
                           gfloat *xalign,
                           gfloat *yalign);

Извлекает X и Y выравнивание метки фрейма. См. gtk_frame_set_label_align().

Параметры

frame

объект GtkFrame

xalign

Место для хранения X выравнивания метки фрейма или NULL.

[out][allow-none]

yalign

Место для хранения Y выравнивания метки фрейма или NULL.

[out][allow-none]

gtk_frame_get_label_widget ()

GtkWidget *
gtk_frame_get_label_widget (GtkFrame *frame);

Извлекает виджет метки для фрейма. См. gtk_frame_set_label_widget().

Параметры

frame

объект GtkFrame

Возвращает

виджет метки или NULL если его нет.

[nullable][transfer none]

gtk_frame_get_shadow_type ()

GtkShadowType
gtk_frame_get_shadow_type (GtkFrame *frame);

Извлекает тип тени фрейма. См. gtk_frame_set_shadow_type().

Параметры

frame

объект GtkFrame

Возвращает

текущий тип тени фрейма.

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

struct GtkFrame

struct GtkFrame;

struct GtkFrameClass

struct GtkFrameClass {
  GtkBinClass parent_class;

  void (*compute_child_allocation) (GtkFrame *frame,
                                    GtkAllocation *allocation);
};

Члены

compute_child_allocation ()

Подробное описание свойств

Свойство “label”

  “label”                    char *

Текст метки фрейма.

Владелец: GtkFrame

Флаги: Чтение / Запись

Значение по умолчанию: NULL

Свойство “label-widget”

  “label-widget”             GtkWidget *

Виджет для отображения вместо обычной метки фрейма.

Владелец: GtkFrame

Флаги: Чтение / Запись

Свойство “label-xalign”

  “label-xalign”             float

Горизонтальное выравнивание метки.

Владелец: GtkFrame

Флаги: Чтение / Запись

Допустимые значения: [0,1]

Значение по умолчанию: 0

Свойство “label-yalign”

  “label-yalign”             float

Вертикальное выравнивание метки.

Владелец: GtkFrame

Флаги: Чтение / Запись

Допустимые значения: [0,1]

Значение по умолчанию: 0.5

Свойство “shadow-type”

  “shadow-type”              GtkShadowType

Вид рамки границы.

Владелец: GtkFrame

Флаги: Чтение / Запись

Значение по умолчанию: GTK_SHADOW_ETCHED_IN

© 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/GtkFrame.html

Spec-Zone.ru

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