2010-03-10 18 views
6

Ich lese dieses Tutorial, das mir hilft, tkinter und wxWidgets parallel zu lernen, aber ich möchte tiefgründig lernen, also würde ich gerne wissen, welches GUI-Tool besser ist und warum?Pro und Kontra von Tkinter und WxWidgets?

+0

Ich habe noch nie tkinter verwendet, aber ich habe wxWidgets verwendet, um eine einfache Terminal-Kommunikations-GUI zu schreiben, die sowohl in Microsoft Windows als auch Linux/GTK funktionierte - war ziemlich glücklich mit dem Ergebnis. –

Antwort

14

Es ist unmöglich zu sagen, was "besser" ist. Beide können für die häufigsten Aufgaben der Benutzerschnittstelle verwendet werden.

Wenn ich irgendwie in einem Satz zusammenfassen könnte, wäre ich versucht zu sagen, dass Tkinter besser entwickelt und ein wenig einfacher zu bedienen ist, aber wxPython ist funktionsreicher und sieht ein bisschen schöner aus.

tkinter Pros: Teil von Python, nichts extra zum Download. Sehr einfache Syntax. Das Text-Widget ist bemerkenswert leistungsstark und sehr einfach zu bedienen. Das Canvas-Widget ist auch sehr einfach und leistungsstark. Kein anderes Toolkit bietet die gleiche Mischung aus Leichtigkeit und Leistung wie diese beiden Widgets meiner Erfahrung nach. Verwendet native Widgets auf dem Mac und Windows. Tk ist felsenfest mit wenigen plattformübergreifenden Eigenheiten. Ich denke, der Bindungsmechanismus von Tkinter ist dem von wxPython weit überlegen; es ist flexibler und konsistenter. Ich denke, die drei Geometrie-Manager von Tkinter - Pack, Place und Grid - sind viel leistungsfähiger und einfacher zu verwenden als die wxPython-Sizer.

tkinter Nachteile: Verwendet Motiv-ähnliche Widgets auf * nix-Boxen, die viele Off-Putting finden (obwohl einige sorgfältige Optimierungen GUIs völlig akzeptabel aussehen lassen können). Manchmal schwierig zu debuggen, dass Tkinter-Widgets in ihrem Kern keine Python-Objekte sind; tkinter bietet einen Wrapper um die tatsächlichen tk Widgets, was manchmal bedeutet, dass Sie seltsame Fehlermeldungen bekommen. Es gibt sehr wenig Druckunterstützung (Sie können PostScript-Dokumente aus der Zeichenfläche erstellen, aber es gibt keine integrierte Unterstützung im Text-Widget zum Drucken). Manche Leute behaupten, Tk sei hässlich. Tkinter ist nicht so "pythonisch" wie wxPython.

wxpython pros: Es hat viele weitere Widgets, obwohl dies oft bedeutet, dass es drei Arten von Notebook-Widgets gibt und nicht ein Küchenspül-Widget. wxPython-Widgets sind erstklassige Python-Objekte, die wirklich gut sind. wxPython sieht auf * nix-Rechnern generell besser aus. wxPython scheint populärer zu sein; Manche Leute interessieren sich dafür, andere nicht. wxPython hat eine viel bessere Druckunterstützung als Tkinter.

wxPython Nachteile: WxPython erfordert einen separaten Download, der bei der Bereitstellung Ihrer App ein Problem sein kann. Die Dokumentation ist meiner Meinung nach sehr schwach; Es ist sehr schwierig, spezifische Informationen zu finden. Das Buch "wPython in Action" bietet eine gute Einführung, kann aber nicht als Nachschlagewerk verwendet werden. wxPython ist ein bisschen buggy IMO, und es gibt bestimmte plattformübergreifende Probleme. Ich habe gesehen, dass wxPython häufiger abstürzt und Assertionen als Tkinter ausdruckt.

+0

Hey Bryan der Python-Experte! Bitte werfen Sie einen Blick auf http://stackoverflow.com/questions/23022005/python-tkinter-tree-selection –

1

Wenn Sie neu sind und einen auswählen möchten, empfehle ich tkinter für seine Einfachheit und Effektivität. wxPython kann warten, bis Sie ein sehr gutes Verständnis von Python haben, insbesondere Klassen und GUI im Allgemeinen.

Verwandte Themen