Python-Programmierung: Übersicht über verfügbare GUI-Toolkits

Aus Wikibooks

Wechseln zu: Navigation, Suche

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

<< Inhaltsverzeichnis

Persönliche Werkzeuge