Seite 1 von 1

Code für pyQt5 und pyQt4

Verfasst: Freitag 14. Februar 2014, 23:13
von Malta
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

Re: Code für pyQt5 und pyQt4

Verfasst: Samstag 15. Februar 2014, 00:08
von Madmartigan
Nette Info, aber gibt es dazu auch eine Frage oder wolltest du uns das nur mitteilen?

Re: Code für pyQt5 und pyQt4

Verfasst: Samstag 15. Februar 2014, 07:29
von Sirius3
@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!