The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

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






Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру