GTK+ 2.0 Tutorial

<<< Previous

Упаковочные ввиджеты (Packing Widgets)

Next >>>


Пример табличной упаковки

Создаём окно с тремя кнопками в таблице 2x2. Первые две кнопки будут помещены в верхний ряд. А третья, кнопка выхода, будет помещена в нижний ряд заняв оба столбца. Выглядеть это будет примерно так:

Исходный код:

#include <gtk/gtk.h> /* Обратный вызов. * Данные направленные в эту функцию будут выведены на stdout */ void callback( GtkWidget *widget, gpointer data ) { g_print ("Hello again - %s was pressed\n", (char *) data); } /* Обратный вызов выхода из программы */ gint delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { gtk_main_quit (); return FALSE; } int main( int argc, char *argv[] ) { GtkWidget *window; GtkWidget *button; GtkWidget *table; gtk_init (&argc, &argv); /* Создаём новое окно */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* Устанавливаем заголовок окна */ gtk_window_set_title (GTK_WINDOW (window), "Table"); /* Определяем обработчик сигналов для delete_event, чтобы выходить из GTK */ g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (delete_event), NULL); /* Устанавливаем окантовку окна. */ gtk_container_set_border_width (GTK_CONTAINER (window), 20); /* Создаём таблицу 2x2 */ table = gtk_table_new (2, 2, TRUE); /* Вставляем таблицу в главное окно */ gtk_container_add (GTK_CONTAINER (window), table); /* Создаём первую кнопку */ button = gtk_button_new_with_label ("button 1"); /* Когда нажимается кнопка, происходит вызов функции * с указателем на кнопку "button 1" в качестве аргумента */ g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (callback), (gpointer) "button 1"); /* Вставляем первую кнопку в верхний левый угол таблицы */ gtk_table_attach_defaults (GTK_TABLE (table), button, 0, 1, 0, 1); gtk_widget_show (button); /* Создаём вторую кнопку */ button = gtk_button_new_with_label ("button 2"); /* Когда нажимается кнопка, происходит вызов функции * с указателем на кнопку "button 2" в качестве аргумента */ g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (callback), (gpointer) "button 2"); /* Вставляем кнопку в верхний правый угол таблицы */ gtk_table_attach_defaults (GTK_TABLE (table), button, 1, 2, 0, 1); gtk_widget_show (button); /* Создаём кнопку выхода "Quit" */ button = gtk_button_new_with_label ("Quit"); /* При нажатии на кнопку происходит вызов функции delete_event и выход из программы */ g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (delete_event), NULL); /* Вставляем кнопку выхода в обе нижние ячейки */ gtk_table_attach_defaults (GTK_TABLE (table), button, 0, 2, 1, 2); gtk_widget_show (button); gtk_widget_show (table); gtk_widget_show (window); gtk_main (); return 0; }

<<< Previous

Home

Next >>>

Packing Using Tables

Up

Widget Overview