GTK+

Z Wikibooks, biblioteki wolnych podręczników.
Skocz do: nawigacja, szukaj
GTK+ Logo

GTK+ (www.gtk.org) to biblioteka przeznaczona do pisania oprogramowania wykorzystującego graficzny interfejs użytkownika wydana na licencji GNU LGPL.



Wieloplatfomowość[edytuj]

GTK+ jest biblioteką wieloplatformową, wykorzystuje ona natywne API danego systemu do tworzenia graficznego interfejsu. Odwzorowuje naturalny wygląd interfejsu danego systemu oraz wspiera mechanizm tzw. skórek, pozwalający na modyfikacje wyglądu.
Programy w niej napisane działają na systemach :

Programy[edytuj]

GTK jest podstawą popularnego środowiska graficznego GNOME oraz Xfce dla systemu Linux, FreeBSD, Solaris i innych typu Unix.

Najpopularniejsze z programów korzystających z Gtk to :

Początkowo biblioteka była pisana na potrzeby programu GIMP. Nazwa GTK+ wywodzi się od The GIMP Toolkit. Znak "+" dodano, gdy wprowadzono obiektową architekturę do biblioteki, mimo, iż napisana jest w języku C (język C). W rozwoju biblioteki pomagają takie korporacje jak RedHat, Novell, Imendio (obecnie Lanedo GmbH) oraz Open Hand.

Języki programowanie[edytuj]

Programy w GTK+ można pisać w wielu językach dzięki takim wrapperom jak :

Powstał nawet nowy język Vala o podobnej składni do języka C# aby ułatwić pisanie programów dla GNOME. Jego kod jest kompilowany do kodu w języku C.

GTK+ jest również wykorzystywane w urządzeniach mobilnych, np. telefonach komórkowych. Obsługuje wielonarodowość dzięki wykorzystaniu kodowania UTF-8. Popularna biblioteka wxWidgets umożliwiająca pisanie aplikacji wieloplatformowych do odwzorowania interfejsu graficznego na systemach Unix wykorzystuje GTK+. Zostały w nim napisane takie programy jak aMule, Code::Blocks, FileZilla, Audacity. Istnieje również narzędzie do szybkiego budowania interfejsu dla programów - Glade.

Części[edytuj]

GTK+ składa się z wielu części. Biblioteki GLib, w której zaimplementowano podstawowe struktury danych, GObject wprowadza obiektowy model typów. Za rysowanie tekstu odpowiada biblioteka Pango. Opcje ułatwień dostępu wspiera biblioteka ATK. GdkPixbuf umożliwia manipulację obrazami w aplikacjach GTK+. GDK GTK+ Drawing Kit jest tym elementem, który w znacznym stopniu odpowiada za przenośność biblioteki. Zajmuje się on właściwym rysowaniem kontrolek wykorzystując do tego natywne funkcje systemu. GIO to abstrakcyjny model dostępu do zasobów dyskowych. Modułowa budowa biblioteki pozwala na dodawane nowych bibliotek. Cairo obsługuje wyświetlanie grafiki wektorowej. Clutter wykorzystuje OpenGL w celu wzbogacenia wizualnych możliwości wyświetlanych kontrolek GTK+.
Obecnie do pisania programów z graficznym interfejsem użytkownika w systemie GNU/Linux wykorzystuje się głównie dwie biblioteki, Qt oraz GTK+. Qt powstała wcześniej, obecnie nad jej rozwojem pracuje firma Nokia. Jest podstawą środowiska KDE.



1. Pierwsze kroki[edytuj]

1.1 Struktura programu GTK+ Etap rozwoju: 100% (w dniu 24.05.2008)
1.2 Kompilacja pod systemem Windows Etap rozwoju: 100% (w dniu 24.05.2008)
1.3 Glade - budowniczy interfejsu Etap rozwoju: 100% (w dniu 24.05.2008)
1.4 Szkielet programu GTK+ w języku C++ Etap rozwoju: 100% (w dniu 20.07.2009)

2. Przykładowe programy[edytuj]

  1. Kalkulator Etap rozwoju: 100% (w dniu 6.04.2009)
    1. Ogólna analiza kodu Etap rozwoju: 100% (w dniu 6.04.2009)
    2. Analiza interfejsu graficznego kalkulatora Etap rozwoju: 100% (w dniu 10.04.2009)
    3. Poprawiona wersja programu Etap rozwoju: 100% (w dniu 19.04.2009)
  2. Kalkulator w C++ Etap rozwoju: 100% (w dniu 29.04.2009)
    Film demonstrujący na YouTube Kalkulator 0.0.1 - example cross-platform graphic applications in GTK+
    1. main.cpp Etap rozwoju: 50% (w dniu 1.12.2009)
    2. kalkulator.hpp Etap rozwoju: 50% (w dniu 1.12.2009)
    3. kalkulator.cpp Etap rozwoju: 50% (w dniu 1.12.2009)
    4. gui.hpp Etap rozwoju: 50% (w dniu 1.12.2009)
    5. gui.cpp Etap rozwoju: 50% (w dniu 1.12.2009)
    6. Makefile Etap rozwoju: 50% (w dniu 1.12.2009)

Inne[edytuj]

Analiza kodu

Pozostałe źródła informacji[edytuj]

Linki zewnętrzne Etap rozwoju: 100% (w dniu 24.05.2008)