PyQt vs Tkinter (German)
Tags: python, pyqt, german, deutsch
Published: 2019-10-31 14:54:40

Sowohl <a href="https://en.wikipedia.org/wiki/Tkinter">Tkinter</a> als auch <a href="https://riverbankcomputing.com/software/pyqt/intro/">PyQt</a> sind nützlich für die Gestaltung akzeptabler GUI's, unterscheiden sich aber gleichzeitig in Bezug auf Anpassungsfähigkeit und Funktionalität. 

Meistens geht es bei Tkinter darum, die GUI selbst zu schreiben, Ihre Einstellungen oder Funktionalität im selben Skript zu programmieren. 

Andererseits trennen Sie in PyQt die GUI in einem Skript und verwenden Ihr Python-code aus einem anderen Skript. 

Anstatt einen eigenen Code für die Benutzeroberfläche zu erstellen, können Sie einfach die Funktionen <a href="https://pythonbasics.org/qt-designer-python/">Qt Designer</a> zur Entwicklung Ihrer Anwendung* verwenden. 

<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fpythonbasics.org%2Fwp-content%2Fuploads%2F2019%2F01%2Fqtdesigner.png&f=1&nofb=1">

Lassen Sie uns daher sehen, was die wichtigsten Unterschiede und Vorteile von PyQt gegenüber Tkinter sind.
 
## PyQt 

### Vorteile der Verwendung von PyQt

1.	Programmierflexibilität - Die GUI-Programmierung mit Qt basiert auf dem Konzept von <a href="https://pythonspot.com/pyqt5-signals-and-slots/">Signalen und Slots</a> zur Herstellung der Kommunikation zwischen Objekten. Das ermöglicht Flexibilität im Umgang mit GUI-Ereignissen und führt zu einer reibungsloseren Codebasis.
2.	Mehr als ein Framework - Qt verwendet eine Vielzahl von nativen Plattform-APIs für die Zwecke der *Vernetzung, Datenbankerstellung und vieles mehr*. Es bietet primären Zugriff auf sie über eine einzigartige API.
3.	Verschiedene UI-Komponenten - Qt bietet mehrere Widgets, wie z.B. Schaltflächen oder Menüs, die alle mit einem einfachen Erscheinungsbild auf allen unterstützten Plattformen gestaltet sind.
4.	Verschiedene Lernressourcen - da PyQt eines der am häufigsten verwendeten UI-Frameworks für Python ist, haben Sie einfachen Zugriff auf eine Vielzahl von Dokumentationen.

<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fbuild-system.fman.io%2Fstatic%2Fpublic%2Fimg%2Fpyqt5-example-app.png&f=1&nofb=1">

5.	Einfach zu beherrschen - PyQt verfügt über eine benutzerfreundliche, unkomplizierte API-Funktionalität sowie spezifische Klassen, die mit Qt C++ verknüpft sind. Dies ermöglicht es dem Anwender, Vorkenntnisse aus Qt oder C++ zu nutzen, was PyQt leicht verständlich macht.
 
### Nachteile der Verwendung von PyQt

1.	Fehlende pythonspezifische Dokumentation für Klassen in PyQt5
2.	Es erfordert viel Zeit, um alle Details von PyQt zu verstehen, was bedeutet, dass es eine ziemlich steile Lernkurve ist.
 
## Tkinter

### Vorteile der Verwendung von Tkinter

1.	Für die kommerzielle Nutzung unentgeltlich erhältlich.
2.	Es ist in der zugrunde liegenden Python-Bibliothek enthalten.
3.	Das Erstellen von ausführbaren Dateien für Tkinter-Anwendungen ist besser zugänglich, da Tkinter in Python enthalten ist und daher keine weiteren Abhängigkeiten aufweist.
4.	Einfach zu verstehen und zu beherrschen, da Tkinter eine begrenzte Bibliothek mit einer einfachen API ist, die die erste Wahl für die Erstellung schneller GUIs für Python-Skripte ist.
 
### Nachteile der Verwendung von Tkinter

1.	Tkinter enthält keine erweiterten Widgets.
2.	Es hat kein ähnliches Werkzeug wie Qt Designer für Tkinter.
3.      Es hat kein natives Look-and-Feel.

<img src="https://thepracticaldev.s3.amazonaws.com/i/879zetiaycgez9lw2ntr.gif" alt="tkinter look and feel"> 
 
## Was soll ich wählen?

Wie auch immer, in den meisten Situationen ist die beste Lösung der Einsatz von PyQt, wenn man die Vor- und Nachteile von PyQt und Tkinter berücksichtigt. 

Die GUI-Programmierung mit Qt wird um Signale und Slots für die Kommunikation zwischen Objekten herum erstellt. So ermöglicht es Flexibilität, während es dem Programmierer den Zugriff auf eine Vielzahl von Tools ermöglicht. 

Tkinter kann in der Tat für diejenigen nützlich sein, die eine grundlegende und schnelle GUI für Python-Skripte entwerfen wollen, aber *für ein besseres Programmierergebnis* entscheiden sich fast alle Programmierer für die Funktionalitäten, die mit *PyQt* geliefert werden. 

Sie geben zu, dass es sich lohnt, das fortgeschrittene Wissen über PyQt aufgrund der professionellen Programmierergebnisse zu beherrschen. 

Wenn es also um PyQt vs. Tkinter geht, hängt alles davon ab, wie viel Sie lernen und entdecken wollen. 

**Resources:**

* <a href="https://gum.co/pysqtsamples">Course: PyQt dekstop apps</a>
* <a href="https://pythonbasics.org/pyqt-hello-world/">PyQt hello world</A>
* <a href="https://pythonbasics.org/tkinter/">Tkinter tutorial</a>