Для написания программы с использованием 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 — высота.







