Kurs GTK+ – rozdział 2

2. Hello world w GTK+

2.1. Utworzenie pustego okna

No — więc jak już zainstalowałeś GTK+, czas przystąpić do kodzenia!

Uruchom więc swój ulubiony IDE i utwórz nowy, pusty projekt. Ja będę korzystał z Code::Blocks i kompilatora GCC.

Utwórz nowy plik źródłowy C++. Ja go nazwałem main.cpp. Wklej do niego następujący kod:

#include <gtk/gtk.h>

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

    gtk_init (&argc, &argv);

    okno = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_widget_show (okno);

    gtk_main ();

    return 0;
}

Następnie go skompiluj z następującą opcją kompilatora:

`pkg-config gtk+-2.0 --cflags`

Oraz linkera:

`pkg-config gtk+-2.0 --libs`

Jeżeli wszystko skonfigurowałeś poprawnie, program powinien się bezproblemowo skompilować. Po uruchomieniu powinieneś ujrzeć coś takiego:

Puste okno programu

Gratulacje! To Twój pierwszy program napisany z użyciem GTK+!

2.2. Interpretacja kodu

No ale fajnie by było wiedzieć, co powyższy kod właściwie robi. Już tłumaczę:

#include <gtk/gtk.h>

Dołączamy odpowiedni plik nagłówkowy GTK+.

GtkWidget *okno;

Tworzymy referencję do widżetu okna.

gtk_init (&argc, &argv);

Inicjujemy GTK+ i przekazujemy parametry, z których został uruchomiony program.

okno = gtk_window_new (GTK_WINDOW_TOPLEVEL);

Tworzymy okno programu. Argument GTK_WINDOW_TOPLEVEL określa, że okna ma zostać utworzone z dekoracjami oraz z domyślnym rozmiarem 200x200 px.

gtk_widget_show (okno);

Wyświetlamy okno programu.

gtk_main ();

Uruchamiamy główną pętlę GTK+.

Jak widać utworzenie pustego okna w GTK+ jest bardzo proste. W następnej części kursu opiszę dodawanie widżetów, takich jak przyciski, czy pola tekstowe do okna.


Comments

  1. Hej,

    Jak masz ustawione opcje kompilatore w codeblock? Gdzie należy zmienić, aby można było kompilować bezpośrednio z środowiska codeblocks?

  2. W Project => Build Options:

    • Compiler Settings => Other Options: `pkg-config gtk+-2.0 --cflags`
    • Linker Options => Other Linker Options: `pkg-config gtk+-2.0 --libs`
  3. Wszystko skopiowane z cpp0x -.-

  4. Nie wszystko :# Moich nie skopiował :v

  5. Witam!
    Mam problem z code blocksem , otóż jak próbuje skompilować ten program, to kompilator wypluwa :
    error: gtk/gtk.h: Nie ma takiego pliku ani katalogu.
    Wszystko poprawnie zainstalowałem. Jeżeli ma to jakieś znaczenie to moim systemem operacyjnym jest Linux Mint.
    Proszę o pomoc i Pozdrawiam

  6. Mi osobiście pomógł ten poradnik http://www.youtube.com/watch?v=xzNOgVQJPxU ale nie wiem czy na Linuxie to zadziała.

  7. Mariuszin reply to Ja

    Dzięki za pomoc :D Teraz działa!
    Trochę inne ułożenie folderów, ale chodzi o to samo.

  8. Witam zrobiłem to co jeden kolega w komentarzu polecił odnośnie video i taki bład:

    Gtk-ERROR **: Incompatible build!
    The code using GTK+ thinks GtkBox is of different
    size than it actually is in this build of GTK+.
    On Windows, this probably means that you have compiled
    your code with gcc without the -mms-bitfields switch,
    or that you are using an unsupported compiler.
    aborting...

  9. Witam, mam pytanie. Zainstalowałem na ubuntu bibliotekę ale mam problem z ustawienie IDE do dobrej kompilacji. Używam Atoma na ubuntu.

Comments are closed for this post.