Для написания программы с использованием gtk+ нам соответственно понадобится их установить.. Это описывать не вижу смысла! Где вы их возьмёте тоже не важно, из пакетов к вашему дистрибутиву вполне подойдут.
Теперь я приведу код целиком:
# include <gtk/gtk.h> int main( int argc, char *argv[]){ GtkWidget *label; // Метка GtkWidget *window; // Главное окно /* Инициализация GTK+ */ gtk_init(&argc, &argv); /* Создание главного окна приложения */ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); /* Устанавливаем заголовок окна "Hello world!" */ gtk_window_set_title(GTK_WINDOW(window), "Hello world!"); /* Создаем текст "Hello world!" в главном окне*/ label = gtk_label_new("Hello world!"); /* Вставляем его в главное окно */ gtk_container_add(GTK_CONTAINER(window), label); /* Показываем окно вместе с виджетами */ gtk_widget_show_all(window); /* Соединяем сигнал завершения с выходом из программы */ g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); /* Переход в бесконечный цикл ожидания действий пользователя */ gtk_main(); return 0; }
Компилировать этот код необходимо так (при условии, что файл зовут gtk.c):
gcc `pkg-config --cflags --libs gtk+-2.0` gtk.c -o gtk
В итоге у нас должно получится нечто такое:
Как вы наверное уже догадались в этой программе мы просто создали окно с именем «Hello world!» и аналогичной надписью в его центре.
Для этого нам понадобилось подключить библиотеку gtk+ — <gtk/gtk.h>.
Затем мы создали две метки: одну для окна (window) и одну для надписи в его центре (label).
После этого необходимо инициализировать gtk+ (gtk_init принимает переменные argv и argc, которые как вы знаете содержат параметры запуска программы), что мы и сделали.
Для создания нового окна используется функция gtk_window_new. Её параметром является тип окна. Он может принимать такие значения:
- GTK_WINDOW_TOPLEVEL — главное окно
- GTK_WINDOW_POPUP — всплывающее окно
Для указания заголовка окна мы воспользовались функцией gtk_window_set_title. Первый параметр которой указывает на окно, а второй — текст заголовка.
gtk_label_new — создаёт новый виджет с указанным текстом внутри.
gtk_container_add — вводит созданный виджет в указанное окно
g_signal_connect мы используем для завершения программы при нажатии кнопки «Закрыть». Необходимо связать эти два сигнала.
Ну и последним в приложении gtk+ является бесконечный цикл ожидания действий пользователя.
ps размеры окна можно задать при помощи конструкции
gtk_window_set_default_size(GTK_WINDOW(window), 200, 100);
где 200 — ширина окна, а 100 — высота.