PyQt vs. PySide

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Malta
User
Beiträge: 83
Registriert: Samstag 8. Januar 2011, 23:51

Ich hab immer mit PyQt gearbeitet, aber habe gesehen das es PySide gibt.

Und hab mir die Frage gestellt welcher besser ist.
PyQt:
Qt v4.9.1 version
Mit pyuic4 in .py umwandeln
Wird von Eric unterstützt

PySide:
mit LGPL Lizenz
Qt 4.7
von Nokia unterstützt
kann die .ui direkt nutzen
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ich glaube da hast Du etwas verwechselt. PyQt kann dank `uic`-Modul ui-Dateien dynamisch laden. PySide kann dieses bisher noch nicht (direkt), sondern man muss da (noch) den Umweg über `pyuic4` gehen.

Was ist denn Deine Metrik für "besser"? Welche Kriterien spielen da eine Rolle? Im großen unterscheiden die beiden Libs sich kaum - wie auch, bilden sie doch im Kern Wrapper für Qt ;-)

Mir fiele noch der Python3 Support von PyQt ein; der fehlt PySide afaik noch.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
lunar

@Hyperion: PySide unterstützt Python 3, und kann – über den Umweg "QtUiTools" – UI-Dateien auch direkt laden.

@Malta: Ich rate Dir zu PySide. PyQt ist zwar freie Software, aber kein offenes Projekt. Es wird von einer Einzelperson im stillen Kämmerchen entwickelt. Demgegenüber ist ist PySide ein wirklich offenes Projekt unter dem Dach von Qt-Project. Es gibt ein offenes Quelltext-Repository, einen Bugtracker und definierte, strukturierte Entwicklungsprozesse.

Technisch sind beide Bibliotheken im Wesentlichen gleichwertig, auch wenn PySide aufgrund seines jüngeren Alters noch nicht so stabil, solide und fehlerfrei ist. Doch es ist nur eine Frage der Zeit, bis PySide aufgeholt hat…

Ich glaube allerdings nicht, dass Eric PySide unterstützt. Ausprobiert habe ich das allerdings nicht, von Eric halte ich wenig.
deets

@lunar

ich muss hier allerdings schon mal eine Lanze brechen fuer Phil Thompson. Der Mann ist - aehnlich wie Michael Bayer von SQLAlchemy - einfach unglaublich gut. Ich habe schon mehrfach wegen Bugs im SIP-wrapper mit ihm zu tun gehabt, und die Reaktionszeiten im Stunden/nightly-build-takt sind schwerlich zu toppen. Da habe ich bei groesseren communities oefter Probleme gehabt.

Natuerlich verstehe ich, dass man eine so grossartige Bibliothek wie Qt gerne unter einer komplett liberalen Lizenz verwenden mag, und nicht "nur" der GPL.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

lunar hat geschrieben:@Hyperion: PySide unterstützt Python 3,
Ah... mir war auch so. Ich hatte noch mal die HP konsultiert und dort aber keine Meldung dazu gesehen. Ab nun speichere ich es mal in meinem Hirn ab :-)
lunar hat geschrieben: und kann – über den Umweg "QtUiTools" – UI-Dateien auch direkt laden.
Ja, da habe ich mich missverständlich ausgedrückt, wie ich grad selber merkte. Ich meinte mit "direkt" eben genau diesen "Umweg"; Du hattest mal ein Beispiel dazu hier gepostet, welches ich noch im Kopf hatte.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
lunar

@deets: Ich habe nichts anderes gesagt. Ändert aber nichts daran, dass er alleine ist, und für PyQt weder öffentliches Repo noch Issue Tracker betreibt, und seine PyQt-Toolchain, insbesondere das Tool, mit dem er aus den Qt-Headern die SIP-Dateien erzeugt, unter Verschluss hält. Man kann ja nicht mal die Versionshistorie so ohne weiteres kontrollieren, weil es auf seiner Seite immer nur den aktuellen Release gibt, und alle vorherigen gelöscht werden [1]. Wenn Thompson einen Autounfall hat, ist es erst mal aus mit PyQt…

Früher war PyQt ohne Alternative, und man musste damit leben, aber angesichts von PySide stellt sich mir schon die Frage, ob ich die Grundlage meiner Projekte noch länger in die Hände einer einzelnen Person legen möchte, worauf die Verwendung von PyQt ja letztlich hinausläuft. Die Lizenz stört mich dagegen gar nicht, zumal man ja re-lizenzieren darf, und eine kommerzielle Lizenz nicht teuer ist.

Die Kernentwickler von PySide reagieren meiner Erfahrung nach übrigens auch recht schnell auf Bugs. Und da sowohl Repository als auch Toolchain vollständig frei und offen sind, kann man kritische Bugs im Zweifelsfall auch selbst beheben.

[1]: Was übrigens ziemlich lästig ist, wenn man PyQt automatisch herunterladen und kompilieren möchte, um beispielsweise Unittests in Jenkins auszuführen.
Antworten