GTK+ — 2. Перша програма

Січень 12th, 2009

У цій частині, в межах курсу по вивченню бібліотеки GTK+, ми напишемо, і покрокового розберемо першу просту програму.

Простий приклад

Розпочнемо з дуже простої програми. Вона створює і відображає просте вікно.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <gtk/gtk.h>
 
int main(int argc, char *argv[])
{
    GtkWidget *window;
 
    gtk_init(&argc, &argv);
 
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_show(window);
 
    gtk_main();
 
    return 0;
}


Зкомпілювати її можна наступною командою:

# gcc -o simple simple.c `pkg-config –libs –cflags gtk+-2.0`

Розбір прикладу

Тепер по пунктам розберемо вищенаведений приклад.

1
#include <gtk/gtk.h>

Підключаємо основний заголовочний файл GTK+. Його повинні містити усі програми, написані на GTK+.

1
gtk_init(&argc, &argv);

Цей рядок ініціалізує бібліотеку GTK+.

1
2
GtkWidget *window;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

Тут ми оголошуємо змінну window типу GtkWidget (усі віджети GTK+ успідковуються від GtkWidget), створюємо просте вікно типу GTK_WINDOW_TOPLEVEL (вікно даного типу має рядок заголовку і обрамлення) за допомогою функції gtk_window_new, і присвоємо змінній windows вказівник на нього.

1
gtk_widget_show(window);

Показуємо віджет window за допомогою функції gtk_widget_show.

1
gtk_main();

І запускаємо головний цикл GTK+. З цього моменту програма очікуватиме на різні події.

У результаті матимемо таке віконечко:

simple_gtk_window

Функції для роботи з вікнами

І на завершення трішки побавимось з властивостями вікна: змінимо його розмір, заголовок та позицію.

Кожен віджет має свій набір властивостей, як то розмір, позиція, колір тла, заголовок, тощо. Для зміни кожної з них, існує спеціальна функція. Наприклад, для того, щоб змінити заголовок вікна — gtk_window_set_title(), для зміни розміру вікна — gtk_window_set_default_size(), тощо. Також для цього є універсальна функція — g_object_set(), яка приймає три параметри: ім’я віджета, ім’я параметру, який слід змінити, і його нове значення параметру. Власне, парамтерів може бути кілька, тоді вони перераховуються, роздяляючись крапкою, після цього у такій же послідовності йдуть їхні значення.

Щоб зрозуміти, як то всьо працює, трішки розшримо нашу програму:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <gtk/gtk.h>
 
int main(int argc, char *argv[])
{
    GtkWidget *window;
 
    gtk_init(&argc, &argv);
 
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 
    gtk_window_set_title(GTK_WINDOW(window), "GTK+ рулить!");
    gtk_window_set_default_size(GTK_WINDOW(window), 250, 180);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
 
    gtk_widget_show(window);
 
    gtk_main();
 
    return 0;
}

Тут за допомогою трьох функцій ми змінили заголовок вікна, його розмір на позицію на екрані монітора.

2 коментарі to “GTK+ — 2. Перша програма”

  1. Olek Says:

    Чому Gtk ? Чому не Gtkmm!? На плюсах якби легше має бути
    Glade (чи інший) UI designer не плануєш навчити використовувати ?

  2. admin Says:

    Олександре, просто я великий фанат С. Та й значно краще знаю GTK+, ніж його біндинг для С++. Але у планах є і про нього написати. Щодо Glade, то як же без нього? ;-)

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes