Zum Inhalt springen

GTK (Programmbibliothek)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 2. Dezember 2005 um 18:16 Uhr durch Boris23 (Diskussion | Beiträge) (links). Sie kann sich erheblich von der aktuellen Version unterscheiden.
GIMP-Toolkit

Basisdaten

Entwickler Das GTK+-Team
Erscheinungsjahr April 1998
Aktuelle Version 2.8.8
(28. November 2005)
Betriebssystem UNIX, Linux, Windows
Programmier­sprache C[1]
Kategorie Komponentenbibliothek
Lizenz LGPL
deutschsprachig ja
www.gtk.org

Das GIMP-Toolkit (abgekürzt: GTK+) ist eine freie Komponentenbibliothek unter der LGPL, mit welcher Grafische Benutzeroberflächen (GUI) für Softwareprogramme 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 Desktop-Umgebung GNOME 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. C++, Java, C# Perl, Python, PHP, CLOS, uvm.).

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. GTK+ ist auch für Microsoft Windows und MacOS X 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.

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. Einige Programme verwenden noch immer GTK+ 1, da GTK+1 weniger komplex und in Teilbereichen wesentlich schneller als GTK+ 2 ist.

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 existiert allerdings auch zwei grafischer Designer für GTK-Oberflächen Glade und Gazpacho, die einem die ersten beiden Schritte ersparen können, GTK um Rapid-Prototyping-Fähigkeiten erweiterten 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 nach Möglichkeit Hardwarebeschleunigung nutzt, für Grafiken.

Siehe auch

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