| |
GTK+ 2.0 Tutorial |
||
---|---|---|
Container Widgets |
Рамки могут использоваться для ограничения одного или группы виджетов с установкой произвольно маркированного поля. Позиция и стиль поля маркировки может изменяться.
Рамка создаётся так:
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; } |
Layout Container |
Aspect Frames |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |