PyGTK

Inhalt

Allgemeines

PyGTK ist die Python-Bindung an das GUI-Toolkit GTK+, ursprünglich von James Henstridge geschrieben und nun von mehreren Leuten weiterentwickelt. Das Binding hat eine gute Performance und die Entwicklung ist sehr aktiv, außerdem ist es allgemein sehr einfach und unkompliziert zu verwenden. Damit kann man Python-Programme schreiben, die sich exakt wie alle anderen GTK+ Programme "anfühlen". Es gibt jedoch einiges zu beachten: PyGTK 0.6 arbeitet nur mit GTK 1.x (also 1.2), was schon recht veraltet ist. Man sollte auf jeden Fall PyGTK 2.x nehmen, das unterstützt GTK+ 2.

Dokumentation

Die offizielle Homepage beinhaltet gute Dokumentation wie eine aktuelle Referenz und ein umfassendes Tutorial. Die FAQ klärt viele Fragen.

Die sehr anschaulich geschriebene und vorbildlich bebilderte Einführung Programmieren mit Python und Glade von Florian Diesch ist sehr zu empfehlen. Es gibt auch eine Empfehlenswerte Einführung des Linux Journal (31. August 2003), sie behandelt außerdem wie man Glade benutzt. Zuletzt gibt es auch noch eine etwas ältere deutsche Einführung, die allerdings PyGTK 0.6 behandelt.

Auf der Homepage gibt eine längere Liste von weiteren Artikeln zu diesem Binding.

Im PythonDeForum gibt es ein PyGTK Unterforum, wo sich die User gegenseitig helfen können.

Möglichkeiten

Über libglade ist es möglich, XML Dateien zu laden, die das Layout der grafischen Oberfläche beinhalten. Somit muss man das Interface nicht mehr im Programm fest verankern. Solche XML Dateien kann man auch mit einem GUI-Builder erstellen, wie dem bewährten Glade oder dem aufstrebendem Gazpacho, der zudem in Python mit PyGTK geschrieben ist. Damit wird das Bauen der Oberflächen sehr vereinfacht.

Es gibt auch die Möglichkeit MVC für PyGTK zu nutzen.

Voraussetzungen

Weil GTK+ recht plattformunabhängig ist, sollte PyGTK sowohl unter Un*x, Windows als auch Mac OS X einsetzbar sein. Am verbreitetsten ist GTK+ in der Linux und *BSD-Welt, weil auf ihr viele Programme aufbauen, so auch der GNOME-Desktop. Um PyGTK zu nutzen, braucht man erstmal eine GTK+ Runtime. Diese ist auf Un*x-Systemen schon oft zu finden, unter Windows muss man sie nachrüsten. Die praktischste Runtime gibt es vom gladewin32-Projekt. Eigentlich reicht die Runtime, aber in der Developer-Version ist auch Glade dabei. Es ist natürlich auch möglich, die offiziellen Dateien zu benutzen, jedoch sind sie nicht so praktisch in einem Installer zusammengeschnürt.

Danach muss man noch PyGTK installieren, unter Un*x meist trivial über das Paketmanagement, unter Windows durch den exzellenten Windows-Port auch kein größeres Problem. Nun kann man anfangen, mit PyGTK zu programmieren.

Herstellen von ausführbaren Programmen

Es ist durchaus etwas komplizierter Programme, die PyGTK nutzen, mit Werkzeugen wie py2exe in ausführbare Programme zu übersetzen. Dies ist aber nicht unmöglich und wenn man die richtigen Einstellungen hat, wird alles recht einfach. So kann man folgendes Script nehmen, es anpassen und schon kann man ohne weitere Probleme die eigenen Programme mit py2exe in ausführbare Dateien konvertieren.

   1 from distutils.core import setup
   2 import py2exe
   3 
   4 opts = {
   5     'py2exe': {
   6         'includes': 'pango,atk,gobject',
   7         'dll_excludes': [
   8             'iconv.dll', 'intl.dll', 'libatk-1.0-0.dll',
   9             'libgdk_pixbuf-2.0-0.dll', 'libgdk-win32-2.0-0.dll',
  10             'libglib-2.0-0.dll', 'libgmodule-2.0-0.dll',
  11             'libgobject-2.0-0.dll', 'libgthread-2.0-0.dll',
  12             'libgtk-win32-2.0-0.dll', 'libpango-1.0-0.dll',
  13             'libpangowin32-1.0-0.dll'],
  14         }
  15     }
  16 
  17 setup(
  18     name = 'GTKbin',
  19     description = 'Irgendein GTK Programm',
  20     version = '0.8.5',
  21     windows = [
  22         {'script' : 'gtkprog.py'}
  23     ],
  24     options=opts
  25 )

Tags: Gui | Gtk

PyGTK (last edited 2010-07-15 14:19:25 by Klaus Wendel)