Zum Inhalt springen

GTK (Programmbibliothek)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 28. April 2007 um 16:19 Uhr durch 146.102.115.26 (Diskussion) (link to pango). Sie kann sich erheblich von der aktuellen Version unterscheiden.
GIMP-Toolkit

GTP-Logo
Basisdaten

Entwickler Das GTK+-Team
Erscheinungsjahr April 1998
Aktuelle Version 2.10.11
(14. März 2007)
Betriebssystem UNIX, GNU/Linux, Windows
Programmier­sprache C[1]
Kategorie Komponentenbibliothek
Lizenz LGPL
deutschsprachig ja
gtk.org

Das GIMP-Toolkit (abgekürzt: GTK+) ist eine freie Komponentenbibliothek unter der LGPL, mit der grafische Benutzeroberflächen (GUI) für Software erstellt werden können.

Sie wurde anfangs von Peter Mattis, Spencer Kimball und Josh MacDonald entwickelt, um abseits von Motif eine Benutzeroberfläche für das Grafikprogramm GIMP zu schaffen. Mittlerweile wird GTK+ jedoch von einer Vielzahl von Anwendungen sowie in der Desktopumgebung GNOME oder auch Xfce verwendet und ist somit, neben Trolltechs Qt, eines der erfolgreichsten Grafik-Toolkits für das X-Window-System.

Verwendete Programmiersprachen

GTK+ ist in C geschrieben, wurde jedoch mit einem objektorientierten Ansatz entwickelt, der nicht in C selbst vorhanden ist. Es gibt Anbindungen an viele Programmiersprachen, darunter auch objektorientierte (z. B. Ruby, Ada, C++, Java, C#, D, Perl, Python, PHP, CLOS, FreeBasic, uvm.).

C++

Die Bibliothek gtkmm ist eine Anbindung von GTK+ an C++, die im Rahmen des GNOME-Projekts entwickelt wird. Es ist auch möglich, gtkmm-Code mittels Glade zu erstellen. Die Bezeichnung gtkmm steht für „gtk minus minus“ oder gtk--, den ursprünglichen Namen des Projektes.

Python

Mit pyGTK ist es möglich, aus Python-Programmen auf GTK+ zuzugreifen. Die Anbindung wurde von James Henstridge entwickelt.

Look and Feel

Das Aussehen des Toolkits ist zum größten Teil durch den Benutzer konfigurierbar. Dazu stehen verschiedene Themes zur Auswahl, von denen einige das Aussehen anderer Benutzeroberflächen nachahmen, zum Beispiel Windows 95, Motif oder NextStep.

Umgebungen, die GTK benutzen

GNOME und XFCE nutzen GTK+ als Grundlage, was bedeutet, dass die jeweiligen Programme auf GTK+ beim Zeichnen der Fensterelemente zurückgreifen. GTK+ ist aber nicht nur auf diese Desktops beschränkt; jedes GTK+-Programm kann auf komplett anderen Desktop-Umgebungen, wie zum Beispiel KDE oder CDE ausgeführt werden, wenn dort die GTK-Bibliotheken installiert sind. Um die optische Integration in Qt-basierte Desktops (z. B. KDE) zu verbessern, gibt es gtk-qt. GTK+ ist auch für Microsoft Windows und MacOS X (mit X11) verfügbar und ermöglicht es damit, Anwendungen zu schreiben, die verhältnismäßig leicht zwischen Unix, Windows und MacOS X portiert werden können. Eine native Version für MacOS X wurde jedoch trotz zahlreicher Portierungsversuche nie vollendet.

Bestandteile der GTK-Bibliotheken

Die erste Version von GTK+ enthielt einige Hilfsroutinen, die strenggenommen nichts mit Grafikdarstellung zu tun hatten, wie zum Beispiel Datenstrukturen für verkettete Listen, Binärbäume oder „mitwachsende“ Strings. Diese erwiesen sich auch für Programme als nützlich, die eigentlich nicht GTK verwendeten, und wurden daher später in eine separate Bibliothek ausgelagert, die GLib library of C functions, die inzwischen auch häufig in Programmen verwendet wird, die gar keine grafische Oberfläche haben. Die neue Version GTK+ 2 erhielt außerdem neue, verbesserte Funktionen zum Rendern von Text mit Hilfe der Pango-Bibliothek, eine neue Theme-Engine, eine flexiblere API und eine neuartige Bibliothek (ATK) zur Verbesserung der Zugänglichkeit des Toolkits für behinderte Menschen, mit der zum Beispiel Vorlese-Software, Vergrößerungstools und alternative Eingabegeräte angesprochen werden können. GTK+ 2 ist nicht kompatibel zu GTK+ 1, daher müssen bestehende Anwendungen portiert werden.

Der klassische Weg, um mit GTK zu programmieren, ist, zunächst die Eigenschaften der verwendeten Grafikelemente festzulegen, sie dann zu gruppieren und mit bestimmten Ereignisbehandlungsroutinen zu verknüpfen (ein mögliches Ereignis wäre zum Beispiel der Klick auf einen Button). Es existieren allerdings auch drei grafische Designer für GTK-Oberflächen, Glade, Gazpacho und Gideon, die einem die ersten beiden Schritte ersparen können, GTK um Prototyping-Fähigkeiten erweitern und es ermöglichen, Änderungen an der GTK-Oberfläche eines Programms vornehmen zu können, ohne den Quellcode der Software ändern zu müssen.

Seit der Version 2.8 verwendet GTK die vektorbasierte Bibliothek Cairo, die für Grafiken nach Möglichkeit Hardwarebeschleunigung nutzt.

Siehe auch

  1. The gtk Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).