Code für pyQt5 und pyQt4

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 habe meine Projekte jetzt so geschrieben das zuerst sie nach pyQt5 suchen und wenn es nicht installiert ist dann pyQt4 verwenden. Neu ist an Qt5 das es eine neue Klasse mit QtWidgets gibt, die seither mit in der QtGui integriert war.
Ich habe es aus dem Grund gemacht das dann der Benutzer nicht extra pyQt5 installieren muss wenn er schon pyQt4 auf dem Rechner hat.

Code: Alles auswählen

try:
    from PyQt5 import QtGui, QtCore, QtWidgets, uic
    print ("pyQt5")
except ImportError:
    from PyQt4 import QtGui as QtWidgets
    from PyQt4 import QtGui, QtCore, uic
    print ("pyQt4")
und dann später in Quelltext habe ich dann die entschprechene QtGui in QtWidgets ausgetauscht.
QtWidgets.QDialog.__init__(self)

https://github.com/MarkusHackspacher/pyLottoSimu
http://markush.cwsurf.de/joomla_17/inde ... -simulator
Benutzeravatar
Madmartigan
User
Beiträge: 200
Registriert: Donnerstag 18. Juli 2013, 07:59
Wohnort: Berlin

Nette Info, aber gibt es dazu auch eine Frage oder wolltest du uns das nur mitteilen?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Malta: »dialog.show_drawing« warst Du noch nicht konsequent genug, da ist in Zeile 48 noch ein Rest QT4/5-Unterscheidung. Wenn Du, wie in der for-Schleife darunter, einen Index brauchst, gibt es dafür »enumerate«, obwohl ich hier nicht vorher alle Buttons erzeugt hätte, sondern diese gleich in der Schleife. Du gibst zwar die höchste Nummer als Parameter mit, das 7x7-Raster ist aber fest eingestellt.
In »lotto_gui« verdoppelst Du an einem dutzend Stellen Code um mit »except« zu Prüfen, ob »unicode« existiert, obwohl Du doch schon am Anfang per »if« prüfst, ob es sich im Python 2 oder 3 handelt. In Zeile 284 hast Du vergessen, dass es »format« gibt.
Für »zufallszahlen« braucht es weder ein extra Modul und auf gar keinen Fall davon 2, nur weil Python 3 range statt xrange sagt!
Antworten