The OpenNET Project / Index page

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

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

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






Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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