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

Сообщение об ошибке

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls в функции menu_set_active_trail() (строка 2405 в файле /home/ih139182/public_html/includes/menu.inc).

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

Просмотров:   2637