PyQt5 - Was ist neu?
Die PyQt5-API ist nicht automatisch mit früheren Versionen kompatibel. Daher sollte Python-Code mit PyQt4-Modulen manuell aktualisiert werden, indem relevante Änderungen vorgenommen werden. In diesem Kapitel wurden die Hauptunterschiede zwischen PyQt4 und PyQt5 aufgelistet.
PyQt5 wird in früheren Versionen von Python als Version 2.6 nicht unterstützt.
PyQt5 unterstützt die connect () -Methode der QObject-Klasse für die Verbindung zwischen Signal und Steckplatz nicht. Daher kann die Nutzung nicht mehr implementiert werden -
QObject.connect(widget, QtCore.SIGNAL(‘signalname’), slot_function)
Es wird nur die folgende Syntax definiert:
widget.signal.connect(slot_function)
In früheren QtGui-Modulen definierte Klassen wurden in verteilt QtGui, QtPrintSupport ein QtWidgets Module.
In der neuen QFileDialog-Klasse ist The getOpenFileNameAndFilter() Methode wird ersetzt durch getOpenFileName(), getOpenFileNamesAndFilter() durch getOpenFileNames() und getSaveFileNameAndFilter() durch getSaveFileName(). Ältere Signaturen dieser Methoden haben sich ebenfalls geändert.
PyQt5 bietet keine Möglichkeit, eine Klasse zu definieren, die von mehr als einer Qt-Klasse untergeordnet ist.
pyuic5 Das Dienstprogramm (zum Generieren von Python-Code aus der XML-Datei von Designer) unterstützt das Flag --pyqt3-wrapper nicht.
pyrcc5unterstützt die Flags -py2 und -py3 nicht. Die Ausgabe von pyrcc5 ist mit allen Versionen von Python v2.6 ab kompatibel.
PyQt5 ruft immer auf sip.setdestroyonexit() automatisch und ruft den C ++ - Destruktor aller umschlossenen Instanzen auf, die er besitzt.