GTK+ 2.0 Tutorial

<<< Previous

Container Widgets

Next >>>


Рамки

Рамки могут использоваться для ограничения одного или группы виджетов с установкой произвольно маркированного поля. Позиция и стиль поля маркировки может изменяться.

Рамка создаётся так:

GtkWidget *gtk_frame_new( const gchar *label );

Поле маркировки по умолчанию располагается вверху слева. Значение NULL в качестве аргумента label, отключает отображение маркировки. Текст маркировки может быть изменён с помощью следующей функции.

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

Позиция поля маркировки изменяется так:

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

xalign и yalign могут иметь значения между 0.0 и 1.0. Аргумент xalign указывает позицию по горизонтали на вершине рамки. yalign в настоящее время не используется.  Значение по умолчанию xalign - 0.0, это помещает метку в левом конце рамки.

Следующая функция изменяет стиль поля, которое используется, чтобы выделить рамку.

void gtk_frame_set_shadow_type( GtkFrame *frame, GtkShadowType type);

Аргумент type может принимать одно из следующих значений:

GTK_SHADOW_NONE GTK_SHADOW_IN GTK_SHADOW_OUT GTK_SHADOW_ETCHED_IN (по умолчанию) GTK_SHADOW_ETCHED_OUT

Следующий пример кода демонстрирует использование рамки.

#include <gtk/gtk.h> int main( int argc, char *argv[] ) { /* GtkWidget содержит типы виджетов */ GtkWidget *window; GtkWidget *frame; /* Инициализируем GTK */ gtk_init (&argc, &argv); /* Создаём новое окно */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Frame Example"); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_set_size_request (window, 300, 300); /* Устанавливаем окантовку окна. */ gtk_container_set_border_width (GTK_CONTAINER (window), 10); /* Создаём рамку */ frame = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (window), frame); /* Устанавливаем маркировку рамки */ gtk_frame_set_label (GTK_FRAME (frame), "GTK Frame Widget"); /* Выравниваем маркировку справа */ gtk_frame_set_label_align (GTK_FRAME (frame), 1.0, 0.0); /* Устанавливаем стиль рамки */ gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_OUT); gtk_widget_show (frame); /* Отображаем окно */ gtk_widget_show (window); /* Входим в цикл */ gtk_main (); return 0; }

<<< Previous

Home

Next >>>

Layout Container

Up

Aspect Frames