«Hello world» на С c использованием GTK

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

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий