Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Biblioteka GTK+

Wstęp

Witam, w moim pierwszym blogu chciałbym opisać szkielet aplikacji korzystającej z GTK+. Tekst ten kieruję to początkujących programistów szukających biblioteki służącej do tworzenia graficznego interfejsu użytkownika.
Pierwszy program który napiszemy wyświetli okno o rozmiarze 200x200 pikseli, program ten nie będzie miał mógł być zamknięty chyba że zostanie zabity za pomocą powłoki.

Pierwsza Aplikacja

r   e   k   l   a   m   a

Najpierw kod potem objaśnienia

#include [gtk/gtk.h>//Proszę o zamienienie [ na <

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;
}

Na samym początku dołączamy oczywiście plik nagłówkowy biblioteki.

int main( int   argc,
          char *argv[] )
{

Tworzymy główną funkcję naszej aplikacji. Jej argumenty są odpowiedzialne za parametry z jakimi możemy wywołać naszą aplikację.

GtkWidget *window;

Tworzymy wskaźnik na kontrolkę o nazwie window, nie dysponujemy jeszcze kontrolką lecz jedynie wskaźnikiem.

gtk_init (&argc, &argv);

Powyższa funkcja inicjuję nam bibliotekę GTK+, jej argumentami są adresy zmiennych które przyjmuje główna funkcja programu.

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

Funkcja ta odpowiedzialna jest za stworzenie nowego okna, jej parametr GTK_WINDOW_TOPLEVEL oznacza że chcemy stworzyć główne okno programu.

gtk_widget_show  (window);

Wyświetlamy wcześniej utworzone okno.

gtk_main ();

Właściwie nasz aplikacja jest już gotowa brakuje nam tylko funkcji która włączy nam obsługę komunikatów i parę innych rzeczy. Można powiedzieć że funkcja gtk_main() pobudza wszystko do życia.

Podsumowanie

To wszystko, mam nadzieję że mój chaotyczny tekst zainteresuję kogoś biblioteką GTK+.
Więcej informacji znajdziecie tutaj:
Dokumentacja(j.angielski)
Wikibooks(j.polski)
Dziękuję za uwagę Marcin Banasiak 

Komentarze