wxPython ist ein Python-Wrapper für das GUI-Toolset wxWidgets. Hier erfährst du alles, was du über ihn wissen musst: Vorstellung, Funktionsweise, Vorteile, Alternativen, Schulungen...
1995 benötigte Robin Dunn eine plattformübergreifende Lösung, eine Anwendung für eine grafische Benutzeroberfläche (GUI), die sowohl auf HP-UX-Systemen als auch auf Windows 3.1 laufen konnte.
Als er sich die vorhandenen freien und kommerziellen Lösungen ansah, entdeckte er Python-Bindings auf der Webseite des Toolkits wxWidgets, das damals noch wxWindows hieß.
So lernte er Python kennen. Mit Hilfe seiner Mitschüler Harri Pasanen und Edward Zimmerman begann er, ein Binding mit dem Namen wxPython zu entwickeln.
💡Auch interessant:
Python |
Wordcloud Python |
Python oder R ? |
Python für Dummies Teil 2 |
Python Schulung |
Was ist Scala und wieso ist Python besser |
Top der nativen Python Funktionen |
Was ist Python ?
Python wurde ursprünglich von Guido van Rossum entwickelt und 1991 veröffentlicht. Es ist eine interpretierte, interaktive und objektorientierte Programmiersprache. Sie wird oft mit Tcl, Perl, Scheme oder Java verglichen und ist von den Sprachen ABC und Haskell inspiriert.
Es handelt sich um eine allgemeine Hochsprache, aber manche ziehen es vor, sie als dynamische Sprache zu bezeichnen. Python ist einfach zu erlernen und verdankt seine Popularität seinem Minimalismus.
Seine Syntax ähnelt der englischen Sprache. Zum Beispiel verwendet es keine Semikolons oder Klammern. Heute wird Python von einer großen Gemeinschaft von Beitragenden auf der ganzen Welt gepflegt.
Außerdem bietet Python viele Bibliotheken und Wrapper für bestehende Tools in anderen Sprachen. Für die Erstellung von grafischen Benutzeroberflächen (GUIs) sind die drei wichtigsten Optionen PyGTK, PyQt und wxPython.
Was ist wxPython ?
wxPython ist ein Wrapper der wxWidgets-GUI-API für die Programmiersprache Python. Diese API ist in C++ geschrieben, weshalb wxPython für die Verwendung in Python unerlässlich ist. Es ist eine Alternative zu Tktinter, das standardmäßig mit Python angeboten wird.
Das Paket kann zur Laufzeit importiert werden und umfasst eine Sammlung von Python-Modulen und ein Modul zur Erweiterung von nativem Code
Es bietet eine Reihe von Python-Klassen, die den Klassen in wxWidgets ähneln.
Das Erweiterungsmodul spiegelt die Klassenhierarchie von wxWidgets wider. So findet sich beispielsweise eine wxFrame-Klasse in wxPython, die der wxFrame-Klasse in der C++-Version zum Verwechseln ähnlich sieht.
Als Wrapper verwendet wxPython die gleiche freie Softwarelizenz wie wxWdigets: die wxWindows Licence. Sie wird von der Free Software Foundation und der Open Source Initiative genehmigt.
Nach der Version 0.2 im Jahr 1995 wurde im August 1998 die Version 0.3 veröffentlicht. Sie wurde für wxWidgets 2.0 entwickelt und lief auf Win32. Eine wxGTK-Version wurde auch für Unix/X-Windows-Plattformen entwickelt.
Die ersten Versionen von wxPython wurden manuell erstellt, aber es wurde schwierig, den Code zu pflegen und die Synchronisation mit den wxWidgets-Relaxen aufrechtzuerhalten. Ab 1997 wurden Versionen mit SWIG erstellt, um den Arbeitsaufwand für Updates zu reduzieren.
Was ist das Phoenix Projekt ?
Das 2010 angekündigte Projekt Phoenix hat das Ziel, wxPython zu verschlanken und es gleichzeitig mit Python 3 kompatibel zu machen. wxPython ist eine neue Implementierung von wxPython, die sich auf Geschwindigkeit, Erweiterbarkeit und Wartbarkeit konzentriert.
Wie die vorherigen Versionen von wxPython umschließt das neue Projekt das wxWidgets C++ Toolkit und bietet Zugriff auf die Benutzeroberflächenteile der wxWidgets API. Ab der 2017 veröffentlichten Version 4.0.0a1 von wxPython wurde das Phoenix-Projekt zur offiziellen Version des Wrappers.
Wozu dient wxPython ?
Die Rolle von wxPython besteht darin, es zu ermöglichen, Python zu verwenden, um plattformübergreifende GUI-Anwendungen zu erstellen, ohne dass plattformspezifischer Code benötigt wird.
Man kann es auch in Situationen verwenden, in denen Python in eine C++-Anwendung als Makro- oder interne Skriptsprache eingebettet ist.
Es ist ein nützliches Werkzeug für Leute, die lieber Python als C++ verwenden. Es ermöglicht auch das schnelle Prototyping von wxWidget-Anwendungen, wo C++ Zeit für den compile-link-run-Zyklus erfordert. In Python wird dieser Zyklus auf edit-run reduziert.
Daher ist es möglich, eine Anwendung in wenigen Stunden statt in Tagen wie bei C++ zu erstellen. Auch die Umwandlung einer wxPython-Anwendung in eine C++/wxWindgets-Anwendung ist eine einfache Aufgabe.
Bekannte Anwendungen, die mit wxPython entwickelt wurden, sind z. B. die Verwaltung persönlicher Informationen Chandler, die Desktop-Clients der Cloud-Speicherdienste Dropbox und Google Drive, der plattformübergreifende Texteditor Editra oder die Fotobearbeitungssoftware Phatch.
Weitere Beispiele sind das geografische Informationssystem GRASS GIS, die Frontends PlayOnLinux und PlayOnMac für Wine und das neurowissenschaftliche Tool PsychoPy.
Alternativen zu wxPython
Es gibt andere GUI-Lösungen für Python, die als Alternative zu wxPython dienen können. Zunächst einmal ist Tkinter die standardmäßige Standard-GUI für Python, die auf allen Plattformen verfügbar ist, die Python und Tcl/TK unterstützen.
Es ist nämlich ein Wrapper für das Tk GUI-Toolkit von Tcl. Dieses Toolset ist vielseitig und kann für zahlreiche Anwendungsfälle in einer Vielzahl von Umgebungen genutzt werden.
Das Erstellen neuer Widgets ist recht einfach, ebenso wie ihre austauschbare Verwendung in Programmen. Tkinter erfordert jedoch die Verwendung von zwei separaten Interpretersprachen: den Python-Interpreter und den Tcl-Interpreter für die GUI.
Außerdem ist Tcl hauptsächlich der Verarbeitung von Strings gewidmet und daher recht langsam. Tkinter schließlich ist ein Low-Level-Toolkit, das viel Codierung für Aufgaben erfordert, die durch Abstraktion vereinfacht werden können.
Eine weitere Alternative zu wxPython ist PythonWin: ein Paket von Python-Add-ons für die Win32-Plattform. Es enthält Wrapper für MFC und für einen großen Teil der Win32-API. Programmierer, die mit MFC und der Win32-API vertraut sind, werden sich auf vertrautem Terrain bewegen.
Natürlich ist PythonWin nicht mit anderen Plattformen und Toolkits kompatibel. Es ist in separaten Paketen und Modulen organisiert, die bei Bedarf verwendet werden können, ohne die GUI-Anteile nutzen zu müssen.
Es gibt viele weitere GUI-Module für Python. Einige befinden sich in aktiver Entwicklung, andere wurden schon lange nicht mehr aktualisiert. Die meisten sind einfache Wrapper für Toolkits in C oder C++. Nur wenige von ihnen sind plattformübergreifend. Die vollständige Liste findest du auf der PyPi-Website.
Fazit
wxPython ist einer der verschiedenen Python-Wrapper für GUI-Toolsets in C und C++.
Um zu lernen, wie man die Sprache Python und ihre Wrapper, Bibliotheken oder Module beherrscht, bist du bei DataScientest genau richtig.
Unsere Kurse beinhalten ein Modul, das sich ausschließlich mit der Programmierung in Python befasst, sowie andere Module, die sich mit Datenanalyse, DataViz oder Machine Learning beschäftigen.
In den verschiedenen Kursen kannst du dir alle Fähigkeiten aneignen, die du brauchst, um als Data Analyst, Data Engineer, Data Scientist, Machine Learning Engineer oder Data Product Manager zu arbeiten.
Alle unsere Programme können im Fernstudium über das Internet absolviert werden, und unsere staatlich anerkannte Organisation ist für den Bildungsgutschein zur Finanzierung zugelassen. Entdecke DataScientest!
Du weißt jetzt einiges über wxPython. Weitere Informationen über Python findest du in unseren Artikeln💡:
Imageio |
Python für Dummies Teil 1 |
Python programmieren lernen |
Data Cleaning Python |
PySpark – Alles wissenswerte |
Python – Vermeide diese Fehler |