Kurs GTK+ – rozdział 2

10

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:
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 200x200px.

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.

10 komentarzy

  1. Tomasz

    Hej,

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

    Odpowiedz
    • m4tx

      admin

      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`
      Odpowiedz
  2. ~~~~

    Wszystko skopiowane z cpp0x -.-

    Odpowiedz
  3. Mariusz

    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

    Odpowiedz
  4. Sebastin

    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…

    Odpowiedz
  5. Artur

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

    Odpowiedz

Zostaw komentarz

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>