Python PyQt vs wxPython (German)
Tags: python, german, deutsch
Published: 2019-11-01 12:27:54

<a href="https://riverbankcomputing.com/software/pyqt/intro/">PyQT</a> vs <a href="https://www.wxpython.org/">wxPython</a>: 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?

<a href="https://python.org">Python</a> 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 <a href="https://pythonbasics.org">Python Grundlagen</a> kennen.

## GUI: Grafische Benutzeroberfläche

Es gibt viele Frameworks um ein <a href="https://pythonspot.com/gui/">GUI (Graphic User Interface)</a> 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?

<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.wxwidgets.org%2Fabout%2Fscreenshots%2Fcars-hotsurf-msw.png&f=1&nofb=1" alt="eine App mit wxwidgets">

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 <a href="https://riverbankcomputing.com/software/pyqt/intro/">PyQt</a> ist es in C++ geschrieben wie <a href="https://www.wxpython.org/">wxPython</a>, 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. 

<img src="https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fqt.developpez.com%2Fdoc%2F4.6%2Fimages%2Fcalendarwidgetexample.png&f=1&nofb=1" alt="pyqt">

Andererseits muss der wxPython keine Annäherungen vornehmen, da er Ihnen genau das Objekt liefert, das Sie mit seinen nativen Werkzeugen kodiert haben.

<img src="https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fwww.codeproject.com%2FKB%2FMFC%2FUltimateToolbox_Skins%2FUTBStyle2003.jpg&f=1&nofb=1" alt="wxpython gui">

## 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. 

<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.seppemagiels.com%2Fsites%2Fdefault%2Ffiles%2Fimages%2Finstall-qt.png&f=1&nofb=1">

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 <a href="https://pythonbasics.org/qt-designer-python/">qt designer</a>, mit dem Sie Ihre Widgets per Drag & Drop verschieben können. 

<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fi.stack.imgur.com%2F79FdX.png&f=1&nofb=1" alt="pyqt designer">

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:**

* <a href="https://gum.co/pysqtsamples">Course: Create Python PyQt desktop apps</a>
* <a href="https://pythonbasics.org/pyqt-hello-world/">PyQt hello world, an introduction</A>
* <a href="https://pythonspot.com/wxpython-window/">wxPython tutorial</a>