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 выравнивания метки фрейма или | [out][allow-none] |
yalign | Место для хранения Y выравнивания метки фрейма или | [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);
};
Члены
|
Подробное описание свойств
Свойство “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