it-swarm.com.de

Entwicklung von GUIs in Python: Tkinter vs PyQt

Wenn man in Python eine Benutzeroberfläche entwickeln möchte, für welche sollte man sich entscheiden: TkInter oder PyQt?

Ich habe gerade mit TkInter angefangen und konnte einige einfache Benutzeroberflächen mit elementaren Widgets wie Beschriftung, Schaltfläche, Textfeld usw. zum Laufen bringen.

prost

82
Arnkrishn

PyQt ist das beste plattformübergreifende Interface-Toolkit, das derzeit verfügbar ist, wenn Sie etwas Ernsthaftes entwickeln, zumal Dinge, die Sie lernen, sich direkt in die Arbeit mit Qt in anderen Sprachen übersetzen lassen.

Es gibt nur zwei wirkliche (potentielle) Nachteile:

PyQt ist nur unter der GPL verfügbar. Das heißt, wenn Sie Ihren Code freigeben, muss er unter einer kompatiblen Lizenz, unter den Bedingungen von GPL-Ausnahme von Nokia oder unter einer kommerziellen Lizenz (die Geld kostet) verfügbar sein. Dies steht im Gegensatz zu Qt, das jetzt unter der LGPL verfügbar ist.

PyQt ist bei Python) -Installationen standardmäßig nicht enthalten. Sie müssen die Bibliothek selbst packen. (Ars Technica hat ein guter Artikel für Windows und OS X.)

63

PyQt ist jetzt unser Haupt-GUI-Toolkit und nach einem Jahr Entwicklung möchte ich nicht mehr auf etwas anderes zurückkommen. Es ist stabil, ausgereift, plattformübergreifend und komplett nativ. Sogar die Systemdialogfelder (zum Beispiel zum Öffnen von Dateien) werden von Ihrem Betriebssystem verwendet.

Ich habe mein XP) - Design und jetzt meine Apps-Skin entsprechend angepasst. Dadurch entsteht ein sehr professionelles Erscheinungsbild, das mit einem Toolkit wie Swing nicht vergleichbar ist. Die API ist umfangreich und geht über das reine hinaus GUI Dinge wie Widgets. Es hat Unterstützung für Datenbank-Konnektivität, Drucken, Threading (ich habe es verwendet und es funktioniert wie ein Zauber), ... Ich benutze es sogar zum Generieren von PDFs (keine anderen externen Bibliotheken erforderlich). Ich würde Mark Summerfields empfehlen Buchen Sie ' Schnelle GUI-Programmierung mit Python und Qt ', um die Geschwindigkeit zu steigern. Denken Sie daran, dass Qt mit einem GUI-Builder (Qt-Designer) geliefert wird, der das ist am besten habe ich verwendet (und ich habe viele von ihnen ausprobiert).
Ich benutze diesen Builder sogar, um Modelle zu erstellen, die den Benutzern angezeigt werden sollen (so einfach ist das!).

Ich habe es 2 anderen Entwicklern hier vorgestellt und habe sie nicht beschweren hören ...

34
Wim Verhavert

Ich benutze tkinter für kleine Anwendungen mit einfacher Oberfläche. Ich mag es sehr, auch wenn der Mangel an gutem WYSIWYG Editor ein Problem für eine größere App sein könnte.

Für große Apps ist PyQt möglicherweise die bessere Wahl. Es hat einen sehr guten Bildschirmdesigner, aber die Lizenzierung kann ein Problem sein.

Schließlich kann wxPython eine gute Alternative sein, da es diese Nachteile nicht hat.

17
luc

PyQt ist sehr einfach zu erlernen und die Dokumentation für Qt funktioniert auch für PyQt. Außerdem gibt es Ports für .NET und Java. Es ist also ziemlich plattform- und sprachübergreifend. Außerdem haben Sie PyQt in Eric IDE integriert.

Die Unterstützung für CSS-Stile ist auch wirklich brillant.

Sehen Sie sich das neue OpenSuSE-Installationsprogramm an, um zu sehen, was Sie damit tun können.

7
przemo_li

Mit Tkinter können Sie riesige GUIs erstellen. Wenn Sie das pytkgen-Modul ausprobieren möchten, können Sie Tkinter-GUIs aus JSON-Definitionen erstellen: https://github.com/tmetsch/pytkgen

3
Andre

Ich benutze PyQt - plattformübergreifend, einfach zu bedienen und zuverlässig.

Ich habe TkInter sehr leicht und ich kann keinen Punkt finden, der tkInter besser macht als PyQt.

1
Kaymatrix