GTK+

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

GTK+ (www.gtk.org) to biblioteka przeznaczona do pisania oprogramowania wykorzystującego graficzny interfejs użytkownika wydana na licencji GNU LGPL. Obecnie jest podstawą popularnego środowiska graficznego GNOME oraz Xfce dla systemu Linux, FreeBSD, Solaris i innych typu Unix. 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 GNU/Linux oraz Unix, Windows, Mac OS X. Najpopularniejsze z nich to GIMP, Inkscape, Firefox, AbiWord. 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. Programy w GTK+ można pisać w wielu językach dzięki takim wrapperom jak gtkmm (dla C++), Gtk# (dla C#), java-gnome (dla Java), PyGTK (dla Python). 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.
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)