Qt, PySide6, PyQt6

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Omm
User
Beiträge: 85
Registriert: Samstag 7. April 2018, 14:05

Samstag 27. Februar 2021, 14:01

Hallo zusammen

ich habe eine Allgemeine Frage.
Wie entscheide ich wie ich in was ich meine Anwendung mache. "Qt, PySide6, PyQt6 " ist sehr ähnlich, aber nicht das selbe. Zumindest so wie ich mich eingelesen habe.
Gibt es da so eine Art Einstufung in Flexibilität, oder worin besteht im groben der unterschied?
Wenn ich richtig bin, wird PyQt6 von PySide6 abgeleitet.

Ich denke nun, dass ich mein Werkzeug im groben beieinander habe um mit meiner erstem Gui starten zu können. Also einigermassen sauber auf der grünen Wiese.
Bis anhin habe ich mit PyQt5 getestet.

Ich bin dankbar um jeden Tipp.
__deets__
User
Beiträge: 9685
Registriert: Mittwoch 14. Oktober 2015, 14:29

Samstag 27. Februar 2021, 14:13

Nein, das hast du falsch verstanden. PyQt ist ein eigenstaendiges Projekt, das erste Python-Wrapping, und steht unter einer Dual-Lizenz - GPL oder kommerziell.

PySide ist dann von Nokia und spaeter der Qt-Company herausgegeben worden. Es hat vor allem eine LGPL-Lizenz

Inhaltlich nehmen die sich nicht soooo viel.

Es kommt also darauf an, ob du die GPL Lizenz vertragen kannst, oder nicht.
"Herr Fachmann, wie bohre ich mir ein Loch ins Knie?"

"Das sollten sie nicht tun! Und wenn man operiert, muss man auf Hygiene achten, und nicht einen Bohrer, der gerade in der Wand ein Loch gebohrt hat, nehmen."

"Das war nicht meine fachliche Frage!!"
Omm
User
Beiträge: 85
Registriert: Samstag 7. April 2018, 14:05

Samstag 27. Februar 2021, 15:01

@_deets_ Da ich dieses Gui ausschliesslich für mich mache, habe ich die Wal der Qual. hmm
Ist manchmal ech nicht einfach. Ich denke mit PyQt sollte es passen.
__deets__
User
Beiträge: 9685
Registriert: Mittwoch 14. Oktober 2015, 14:29

Samstag 27. Februar 2021, 15:24

Fuer persoenliche Projekte kann man IMHO gut die GPL benutzen. Die GPL erzwingt anders als oft gedacht nicht, dass man seinen Code irgendwo oeffentlich hostet zB. Wenn man das Tool herausgibt, DANN ist der Moment, wo man Zugang zu den Quellen *auf Anfrage* sicherstellen muss.
"Herr Fachmann, wie bohre ich mir ein Loch ins Knie?"

"Das sollten sie nicht tun! Und wenn man operiert, muss man auf Hygiene achten, und nicht einen Bohrer, der gerade in der Wand ein Loch gebohrt hat, nehmen."

"Das war nicht meine fachliche Frage!!"
Omm
User
Beiträge: 85
Registriert: Samstag 7. April 2018, 14:05

Samstag 27. Februar 2021, 15:38

Vielen Dank für deine Erläuterungen.
So bei 100% bin ich noch nicht, aber ich denke da mache ich nichts falsch.
bb1898
User
Beiträge: 179
Registriert: Mittwoch 12. Juli 2006, 14:28

Dienstag 2. März 2021, 20:31

__deets__ hat geschrieben:
Samstag 27. Februar 2021, 14:13
Inhaltlich nehmen die sich nicht soooo viel.
Dem würde ich weitestgehend zustimmen, mit einer Ausnahme, aber die scheint mir wichtig: wenn ich mein GUI im Designer erzeuge und die entstandene .ui-Datei im Programm laden will, dann geht das bei PyQt und PySide schon sehr unterschiedlich. Ich meine nicht das Erzeugen einer Python-Klasse, das geht bei beiden wohl ziemlich gleich. Beim dynamischen Laden im Programm und vor allem beim Zugriff auf die einzelnen Steuerelemente wird's sehr unterschiedlich. Und, schlimmer, nicht besonders gut dokumentiert. Offizielle Dokumentationen:
PySide6: https://doc.qt.io/qtforpython-6/tutoria ... files.html,
PyQt6: https://www.riverbankcomputing.com/stat ... odule.html

Für PySide2 habe ich hier ein altes, aber vermutlich noch funktionsfähiges Beispiel gefunden:
https://www.blog.pythonlibrary.org/2018 ... or-python/
Thants
User
Beiträge: 32
Registriert: Dienstag 1. Dezember 2020, 12:00

Freitag 5. März 2021, 11:38

Ich habe bisher meistens PyQt benutzt und konnte damit auch praktisch alles machen, was ich brauchte. Allerdings gibt es seit PyQt5 doch einen (kleinen?) Makel, und zwar wird der GIL beim Übergang nach C++ nicht mehr freigegeben (d.h. der Python-Interpreter ist für diese Zeit blockiert). Ich hatte mir mal einen Bildbetrachter geschrieben und da mit QImage/QPixmap die Bilder geladen (auch um Thumbnails zu erzeugen) und das war völlig unbrauchbar, da die GUI nicht mehr vernünftig reagierte. Bei PyQt4 wäre das noch kein Problem gewesen. Ich bin dann für das Laden der Bilder auf Pillow umgestiegen, damit lief die GUI dann wieder flüssig. Fand ich aber doch recht enttäuschend von PyQt5, dass einige Programmteile durch diese GIL-Änderung in bestimmten Situationen unbrauchbar wurden.

Wie sich PySide in dieser Hinsicht verhält habe ich noch nicht ausprobiert (würde aber erwarten, dass es den GIL freigibt). PyQt6 habe ich auch noch nicht getestet, vielleicht besteht ja die Hoffnung, dass sie diese Änderung wieder rückgängig gemacht haben.
Antworten