Python-Programmierung: Übersicht über verfügbare GUI-Toolkits
Aus Wikibooks
Inhaltsverzeichnis |
[Bearbeiten] Übersicht über verfügbare GUI-Toolkits
[Bearbeiten] Tkinter
Tkinter ist das Standard GUI Toolkit, das bei Python mitgeliefert wird. Es ermöglicht GUI Programme zu schreiben, die das Tk von Tcl benutzen. Mit dem GUI Builder existiert ein sehr guter, freier, visueller GUI-Designer.
+ einfache Programmierung + direkt bei Python dabei, somit auf allen Platformen verfügbar + keine Probleme bei Benutzung von [py2exe] + Programmierung eigener widgets möglich +/- Look&Feel wie lokales Betriebssystem (erst ab 'Tk 8') - unter Linux wird leider auch in Version 8 der Motif-ähnlichem Look&Feel fortgeführt.
[Bearbeiten] EasyGUI
EasyGUI ist ein Aufsatz für Tkinter.
+ einfach zu verwenden für Gelegenheitsprogrammierer und Programmieranfänger
[Bearbeiten] PyGTK
PyGTK ist der Wrapper für GTK+, das besonders unter Linux und anderen Unices verwendet wird, so auch für GNOME. GTK+ ist zwar in C geschrieben, daher ziemlich schnell, aber trotzdem objektorientiert. Unicode-Unterstützung ist kein Problem
+ einfach zu programmieren + gtk.Box im Vergleich zu wx.Sizer unkompliziert + mit Glade gibt es einen guten GUI Editor, dessen Dateien auch direkt als XML in Programme importiert werden können + es gibt Doku und zwar nicht nur eine C++-Referenz, sondern eine Python-Referenz und ein längeres Tutorial + Look and Feel auch skinbar, auch unter Windows auch Luna-Themes = mit gladewin32 gibt es auch einen einfach installierbaren GTK+-Port für Windows. Die Python-Bindings gibt es auf der PyGTK Homepage = schwieriger ein py2exe Paket zu erstellen s. [activestate-Mail] - funktioniert unter Windows langsamer als wxPython, ist aber unter Linux "heimisch" - muss extra installiert werden
[Bearbeiten] wxPython
wxPython ist der Python Wrapper für wxWidgets. wxWidgets ist ein Framework, das neben GUI auch andere praktische Dinge kann.
+ auf allen Plattformen verfügbar + Look & Feel wie lokales Betriebssystem + schnell + guter Support in der Mailingliste + kann auch drucken + engl. Buch "wxPython in Action" ist erhältlich + GUI-Designer für wxPython verfügbar - manchmal buggy (so hat wx.Pen() den Interpreter getötet) - Installation erforderlich - Programmierung aufwendiger als bspw. bei Tkinter - schlechte Dokumentation (wenig Python spezifisch) - kein guter Debugger für immer wieder auftretende Bugs
[Bearbeiten] PythonCard
PythonCard ist quasi ein Aufsatz auf wxPython.
+ sehr einfache Programmierung + auf allen Plattformen verfügbar + Look&Feel wie lokales Betriebssystem + schnell (?) - muß extra installiert werden - nur wenige wx-Widgets verfügbar
[Bearbeiten] PyQt
PyQt ist der Wrapper für Qt. Qt wird u.a. von KDE verwendet. Es stellt ein komplettes Framework dar, welches neben dem Erzeugen von GUIs noch andere nützliche APIs bietet.
+ Slotmechanismus ist gut implementiert
+ ab Version 4 für Windows, Linux und Mac verfügbar
+ Look & Feel wie lokales Betriebssystem
+ kann auch drucken
+ bietet viele zusätzliche APIs für Multimedia, Netzwerkzugriff,
XML und Threading
+ Mit dem Qt-Designer gibt es einen einfachen GUI-Designer
+ Integration des QT-Designer in die IDE Eric vereinfacht die Entwicklung noch einmal[1]
+ Look and Feel auch skinbar, auch unter Windows auch Luna Themes
+ gute Unicode-Unterstützung
+ einfache Internationalisierung
- es existiert keine wirkliche Dokumentation für PyQt,
sondern nur die C++-Dokumentation, die allerdings sehr gut ist.
- relativ große Binaries
- bis Version 3 unter Windows fast unmöglich zum Laufen zu bringen
siehe auch Kurzanleitung: Python-GUI-Programmierung mit PyQt
[Bearbeiten] PyFLTK
PyFLTK ist ein Wrapper für FLTK, ein kleines flinkes GUI Toolkit
+ ist scheinbar wieder im Aufwind - kleine Userbasis
[Bearbeiten] PythonWin
Pythonwin ist eine Möglichkeit MFC in Python zu nutzen und somit auch GUIs zu erstellen
+ kann Win32API direkt aufrufen - nur unter Windows verwendbar
[Bearbeiten] Inaktive GUI Toolkits
FXPy für FOX ist seit 2002 nicht mehr in Entwicklung, DynWin ist auch schon sehr alt und kaum benutzt. Die Python X Library ist schon seit 2002 verwaist. Daneben gab es noch STDWIN, Wafe, Motif, WPY, Amulet und XForms.
[Bearbeiten] Besondere Toolkits
Pygame ist eine Möglichkeit die plattformübergreifende Bibliothek SDL unter Python zu nutzen. Die verschiedenen Zusatzbibliotheken für SDL werden, wenn vorhanden, ebenso eingebunden und nützliche Zusatzroutinen bereitgestellt.
+ Plattformübergreifend dank SDL + SDL ist in C geschrieben, daher schnell + OpenGL kann auch mit Pygame/SDL genutzt werden - keine Widgets - auf Spiele zugeschnitten
OpenGL, anygui