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

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

0 nowych
treuer25   6 #1 17.05.2010 23:36

No no bardzo fajnie że ktoś się zajął programowaniem na blogu mam nadzieje że będą kolejne cześci.

  #2 18.05.2010 07:52

gtk_main zawiera właśnie pętlę obsługi komunikatów. Możemy oczywiście stworzyć własną pętlę obsługi żądań, jednak programista bez doświadczenia nie koniecznie będzie się w to zgłębiać.

  #3 18.05.2010 07:53

Warto też zwrócić uwagę na gtk_init_check. Działa podobnie do gtk_init, jednak w przypadku problemów nie kończy programu, a jedynie zwraca odpowiedni kod(chyba 0). W ten sposób można pisać jednocześnie programy konsolowe, jak i graficzne(tzn. przy braku połączenia z X-ami program będzie się komunikować przez konsolę).

Marcin240   3 #4 18.05.2010 09:32

Masz racje funkcja gtk_init_check() działa tak samo jak funkcja gtk_init(), z tą różnicą że w razie gdy GUI nie może zostać zainicjowane zwraca FALSE lub TRUE gdy operacja się udała.

borzole   4 #5 18.05.2010 10:17

A gdzie ta magiczna linijka do kompilacji i budowania kodu, gdzie wyszczególnione paczki potrzebne do budowy i gdzie jest zrzut ekranu z gotową aplikacją?
:)
Nawiasem mówiąc lepszy by był kurs PyGTK do zainteresowania GTK, bo C to jednak rzeźba.

  #6 18.05.2010 11:51

A ja wolał bym przeczytać coś na temat bibliotek qt4 ponieważ mało się o tym pisze w naszym języku.
Co to jest.
Jakie są zalety stosowania qt.
Podstawowe klasy.
Przykładowe programy.
Opis Qt Creatora szczególnie wersji 2
Co to jest Qt Quick itd itp.
http://labs.trolltech.com/blogs/category/qtcreator/

  #7 18.05.2010 20:58

rozwijasz się