PyQT vs wxPython: Welche davon sollten Sie für Ihr Projekt verwenden?
Betrachten wir diese beiden Python-Module zur Erstellung von GUIs (Graphical User Interfaces).
Was ist Python?
Python ist eine hochrangige, interpretierte und universell einsetzbare Programmiersprache. Es ist eine beliebte Programmiersprache, die sowohl objektorientierte Programmierung als auch Scripting beherrscht.
Obwohl es im Jahr 1990 (vor 29 Jahren) von Guido van Rossum entworfen und entwickelt wurde, wurde es erst kürzlich im Monat Oktober 2019 stabil veröffentlicht.
#!/usr/bin/python3
print "Hallo Welt"
Python war im Laufe der Jahre eine beliebte Programmiersprache und wird von Programmierern wegen seiner Betonung der Code-Lesbarkeit und seiner bemerkenswerten Verwendung von Whitespace geliebt, das es Programmierern ermöglicht, logische Codes für kleine und große Projekte zu schreiben.
Bevor Sie eine GUI erstellen, sollten Sie die Python Grundlagen kennen.
GUI: Grafische Benutzeroberfläche
Es gibt viele Frameworks um ein GUI (Graphic User Interface) für Python bereitzustellen, und alle haben ihre verschiedenen Vor- und Nachteile in verschiedenen Bereichen sowie ihre Funktionalität, aber zwei der wichtigsten Schnittstellen sind PyQT und wxPython.
Nun, als Programmierer, was ist besser für dich? Gibt es einen nennenswerten Unterschied zwischen den beiden? Und die alle wichtige Frage: Welchen sollten Sie für Ihr Projekt verwenden?
Dieser Artikel zielt darauf ab, alle diese Fragen zu beantworten, indem er sie zum Zwecke des Vergleichs in verschiedene Kategorien unterteilt:
Schau
Die Gesamtästhetik mag nicht wichtig erscheinen, aber sie ist das erste, was eine Person bemerkt, wenn die Anwendung eingeschaltet wird.
Für PyQt ist es in C++ geschrieben wie wxPython, aber es verwendet keine nativen Widgets wie das wxPython.
Stattdessen werden Annäherungen von Widgets in Abhängigkeit vom erkannten Betriebssystem (OS) erstellt, während das wxPython Kernbibliotheken hat, die als Wrapper um die nativen Widgets des Betriebssystems herum vorhanden sind.
Das PyQt macht gute Annäherungen an Widgets, so gut, dass es fast unmöglich ist, einen Benutzer (nicht einmal Kunststudenten) zu finden, der sich darüber beschwert, dass das PyQt nicht aussieht oder sich nativ anfühlt.
Andererseits muss der wxPython keine Annäherungen vornehmen, da er Ihnen genau das Objekt liefert, das Sie mit seinen nativen Werkzeugen kodiert haben.
Installationsprozess
Die Schritte und der Aufwand für die Installation einer Anwendung sind sehr wichtig, insbesondere wenn es sich um eine Schnittstelle handelt, die Sie an die Benutzer verteilen möchten.
Für PyQt ist die Installation einfacher. Alles, was Sie tun müssen, ist, einen Link zum Herunterladen zu erhalten, das heruntergeladene Paket zu installieren und die Anwendung zu verwenden, bevor Sie es merken.
Für wxPython ist die Installation unter Linux und Windows einfach, aber unter Mac OS sehr hektisch.
Layout
Das Layout von PyQt ist recht einfach. Die Widgets sind sinnvoll benannt, z.B. QPushButton, QDial, etc.
In wxPython, dass das grundlegende Widget im wxPython das wx.Window ist, und alles, ob es sich nun um eine Drucktaste, ein Rad oder eine Checkbox handelt, befindet sich in der Klasse wx.Window.
Sowohl wxPython als auch PyQt unterstützen Rasterlayouts und Absolutpositionierung.
PyQt hat einen GUI WYSIWYG Builder namens qt designer, mit dem Sie Ihre Widgets per Drag & Drop verschieben können.
Obwohl wxPython einige Designer (wxGlade, boa-constructor) hat, sind sie bei weitem nicht so benutzerfreundlich und nutzbar (meiner Meinung nach).
Was ist besser?
Kommt darauf an. Der wxPython ist einfach zu bedienen und Lösungen können leicht erstellt werden, wenn es nicht einfach ist. Allerdings ist der PyQt groß und hat eine Menge Komfort, der mit dieser Größe einhergeht.
Bevor Sie die Wahl auf der Benutzeroberfläche treffen, um sie zu verwenden oder zu empfehlen, denken Sie daran, dass beide gute, solide GUIs sind, aber vom Design her unterschiedlich und in verschiedenen Situationen nützlich sind.
Mehr liesen:
Top comments (1)
Finde ich gut. Eine kurze knackige Zusammenfassung. Leider kommt tkinter ein wenig zu kurz, doch man findet an anderer Stelle im Netz Infos. Was ich aber konkret suche, richtige Erfahrungsberichte mit ein paar statistischen Auswertungen, wie Laufzeitverhalten, bzw. Übersicht der Elemente wie Table, Grid etc...