Python-Programmierung: PyGTK

Aus Wikibooks
Wechseln zu: Navigation, Suche
Nuvola apps important.svg Diese Seite gehörte vormals zu einem Buch zum Thema Python 2, mittlerweile aber zu einem Buch zum Thema Python 3. Deswegen sind die alle oder nahezu alle Inhalte dieser Seite falsch bzw. irrelevant.

<< Inhaltsverzeichnis

PyGTK ist ein Python-Modul, mit dessen Hilfe man das grafische Toolkit GTK+ in Python-Programme einbinden kann. GTK steht für GIMP-Toolkit, was auf die Herkunft dieser grafischen Oberfläche hinweist. Als der Grafikeditor GIMP geschrieben wurde, existierte noch keine grafische Oberfläche, die mit der GPL-Lizenz kompatibel war und gleichzeitig den hohen Ansprüchen des GIMP-Projekts genügen konnte. Aus diesem Grund wurde für GIMP eine eigene grafische Benutzeroberfläche geschrieben, die später in Form von GTK+ aus dem GIMP-Projekt ausgegliedert wurde.

Da GTK+ den hohen Ansprüchen von GIMP gerecht werden musste, genügt es fast allen erdenklichen Ansprüchen, die man an eine grafische Benutzeroberfläche stellen kann. Die Leistungsfähigkeit ist sogar so hoch, dass der komplette GNOME-Desktop für Linux auf GTK+ basiert. Unter Windows stellt es seine Leistungsfähigkeit eindrucksvoll unter Beweis, wenn es in Programmen wie Inkscape oder GIMP seinen Dienst tut. Man muss allerdings sagen, dass manche Dinge unter GTK+ etwas anders aussehen, als man es von Windows gewohnt ist. So sind etwa die Dateiauswahldialoge anders als bei "normalen" Windows-Applikationen und auch diverse andere Bedienelemente sehen eher nach Linux als nach Windows aus. Trotzdem sind die Zeiten längst vorbei, in denen sich GTK+ wie ein Fremdkörper unter Windows anfühlte.

Zusammenfassend kann man aber sagen, dass GTK+ unter Linux wie auch unter Windows kaum Wünsche offen lässt. Man kann auf eine grosse Anzahl gut durchdachter Bedienelemente zurückgreifen und auch ohne grössere Schwierigkeiten neue Bedienelemente kreieren, sofern man nicht auf eine vorhandene Lösung zurückgreifen kann. Ein weiterer Vorteil von GTK+ ist, dass man damit auch drucken kann. Diese Option bietet eigentlich nur noch WxWidgets, das andere etablierte Grafik-Toolkit neben GTK+. Noch ein Vorteil ist der mitgelieferte Oberflächen-Editor GLADE, mit dessen Hilfe man grafische Oberflächen zeichnerisch erstellen kann und diese dann mit PyGTK in einer Applikation einlesen kann.

Noch ein Vorteil von GTK+ ist, dass es von Haus auf alle gängigen Grafikformate unterstützt. So ist es z.B. kein Problem, eigene Icons in Form von .png, .jpg oder .svg in eigenen Applikationen zu verwenden. Bei vielen anderen grafischen Oberflächen ist die Installation einer weiteren Bibliothekensammlung (wie z.B. der Python Image Library kurz: PIL) erforderlich, bei GTK+ dagegen gehört dies schon zum Standard-Funktionsumfang.

[Bearbeiten] Installation

Wer GTK+ zusammen mit Python benutzen möchte, muss natürlich erstmal alles installieren. Zunächst muss Python selbst vorhanden sein, zum heutigen Zeitpunkt (2009) empfiehlt sich die neueste Version 2.x, für die PyGTK noch verfügbar ist (aktuell Python 2.6). Das Problem mit Python 3.0 ist, dass PyGTK dafür überhaupt noch nicht zur Verfügung steht. Die Macher von Python 3.x haben recht tiefgreifende Änderungen vorgenommen, so dass die Abwärtskompatibilität weitgehend verloren gegangen ist. Somit wird es wohl noch eine Weile dauern, bis selbst etablierte Erweiterungen wie PyGTK für Python 3.x zur Verfügung stehen werden.

Unter Windows ist nun erforderlich, das GTK+ Toolkit zu installieren. Weil wir entwickeln wollen, brauchen wir dafür das WinGLADE development kit. Es enthält neben den Bibliotheken von GTK auch den Oberflächen-Editor namens GLADE, mit dem sich die grafische Oberfläche zeichnerisch entwerfen lässt.

Ist Python 2.x und WinGLADE installiert, folgt der Download und die Installation von drei Paketen:

  • PyGTK - Das GTK+ - Toolkit selbst.
  • PyCairo - Cairo ist die Vektorgrafik- und Schriftbibliothek, auf die GTK zurückgreift.
  • PyGobject - Gobject ist die programmtechnische Basis von GTK, welche die Ausführung des Toolkits erst ermöglicht.

[Bearbeiten] bereits fertige Artikel

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Mitmachen
Werkzeuge
In anderen Sprachen
Drucken/exportieren