Die GUI-Bibliothek für Python
»Warum zur Hölle ist wxPython nicht der GUI-Standard für Python geworden?.«
Eric S. Raymond
»wxPython ist das beste und ausgereifteste Plattform-übergreifende GUI-Toolkit. ... Der einzige Grund, warum wxPython nicht das Standard-GUI-Toolkit für Python ist, liegt daran, dass Tkinter zuerst da war.«
Guido van Rossum
Mit wxPython können grafische Benutzeroberflächen erstellt werden, die auf verschiedenen Betriebssystemen so aussehen, wie es der Anwender erwartet. Eine Software für Windows XP erscheint im Original-XP-Stil auf dem Monitor, während ein Programm für Linux exakt die Darstellung des Linux-Desktops und ein Programm für Mac OSX exakt den OSX-Stil zeigt. wxPython nutzt zur Erstellung der Programmoberflächen jeweils die originären Betriebssystem-Programmierschnittstellen. Nur dort, wo ein wxPython-Element keine Entsprechung in einem der Betriebssysteme hat, wird es von wxPython selbst grafisch implementiert. Wer mit wxPython arbeitet, merkt von dieser sehr positiven Eigenschaft seines Programmes erst dann etwas, wenn er es auf unterschiedlichen Systemen startet.
wxPython ist ein klassisches Python-Erweiterungsmodul. Es stellt mehr als 200 Klassen und Funktionen für die Programmierung von GUIs (Graphical User Interfaces) zur Verfügung. wxPython ist ein Wrapper der CPP-Bibliothek wxWidgets. Wrapper heißt auf Deutsch Verpackung oder Einhüllung und bezieht sich im Softwarebereich darauf, dass Klassen oder Funktionen auf bestimmte Weise mit Hüllklassen versehen werden, die über Schnittstellen verfügen und auf diese Weise die zugrundeliegende Technologie einkapseln.
Die mächtige wxWidgets-Bibliothek aus der CPP-Welt ist so schlau eingepackt worden, dass wir mit Python-Befehlen auf sie zugreifen und sie nutzen können. wxPython verfügt über Interfaces (Schnittstellen) zu den wxWidgets-Klassen und es fügt noch eine Menge eigener Klassen zu dem Gesamtpaket hinzu, die nativ (von Geburt an) in Python programmiert sind. Für die Verbindung zwischen wxPython und wxWidgets spielt übrigens eine weitere Open Source Software eine große Rolle: SWIG, der Simplified Wrapper and Interface Generator. Die Entwickler von wxPython nutzen SWIG, um die wxWidgets-Bibliothek für Python-Programmierer zugänglich zu machen.
Für die Programmierung von grafischen Benutzeroberflächen ist wxWidgets seit vielen Jahren eine anerkannte Software-Bibliothek, die von vielen Profi-Entwicklern genutzt wird. Die Geschichte von wxWidgets reicht bis ins Jahr 1992 zurück. Zu diesem Zeitpunkt dachte Julian Smart an der Universität von Edinburgh darüber nach, wie er sein Grafiktool Hardy auf mehreren Rechnern zum Einsatz bringen könnte. Er wollte Hardy auf einer Sun-Workstation und auf einem PC nutzen und brauchte dazu eine Plattform-übergreifende Lösung. Im September 1992 lud er wxWidgets 1.0 auf den Universitätsrechner und andere Entwickler begannen den Code zu nutzen. Seither ist eine stabile Open Source Entwicklergemeinde rund um wxWidgets entstanden. Die Software steht unter der LGPL-Lizenz (Library General Public Licence) und kann für kommerzielle Zwecke voll zum Einsatz kommen. Aus historischen Gründen heißt die Lizenz wxWindows Licence, denn bis ins Jahr 2004 wurde wxWidgets unter dem Namen wxWindows entwickelt, was zu gewissen Problemen mit Microsoft führte.
Ein großer Vorteil von wxWidgets ist die sehr umfangreiche Ausstattung. In mehreren Bereichen gehen die Funktionen von wxWidgets weit über die reine GUI-Programmierung hinaus. So existieren beispielsweise Klassen und Funktionen für Dateimanagement, Datenbankzugriff, Malen und Zeichnen, HTML-Integration, Online-Hilfe, Druck- und Netzwerkfunktionen. Bis hin zu Animationen und Spielen ist fast alles mit wxWidgets möglich, der Phantasie des Entwicklers sind kaum Grenzen gesetzt.
Ein weiterer Vorteil ist die Unterstützung zahlreicher Plattformen, die über jeweilige Ports zum direkten Datenaustausch angesteuert werden (siehe Grafik). Beispielsweise kommen für eine Fensterdarstellung in einer Windows-Umgebung die originären Funktionen der WIN32-API zum Einsatz. Dadurch sieht die mit wxWidgets programmierte Software nicht nur wie ein Windows-Programm aus, sondern es ist auch eines. Auf diese Weise können mit einer GUI-Bibliothek Programme für Windows, Linux, Unix, Mac oder auch mobile Rechner erstellt werden. Die Programmdarstellung ist wie oben bereits beschrieben immer Betriebssystem-konform, da nur in Ausnahmefällen auf wxWidgets-eigene Grafikstile zurückgegriffen wird.
Die Geschichte von wxPython beginnt 1995 mit der Arbeit von Harri Pasanen aus Finnland und Robin Dunn aus den USA. Dunn gilt als Mr. wxPython. Er ist seit Dezember 2002 als Berater für die Open Source Applications Foundation in San Franciso tätig und entwickelt das Open-Source-Projekt intensiv weiter. Zuvor war er als Software-Architekt für Firmen in Portland und Vancouver tätig. Im Juli 2002 wurde Robin Dunn für die Entwicklung von wxPython mit dem Active State Programmers Choice Award ausgezeichnet. Im März 2006 ist in den USA das erste Buch zu wxPython erschienen: wxPython in Action von Noel Rappin und Robin Dunn.
CategoryPython