PyQt5 - Novità
L'API PyQt5 non è automaticamente compatibile con le versioni precedenti. Quindi, il codice Python che coinvolge i moduli PyQt4 dovrebbe essere aggiornato manualmente apportando le modifiche pertinenti. In questo capitolo sono state elencate le principali differenze tra PyQt4 e PyQt5.
PyQt5 non è supportato sulle versioni di Python precedenti alla v2.6.
PyQt5 non supporta il metodo connect () della classe QObject per la connessione tra il segnale e lo slot. Quindi l'utilizzo non può più essere implementato -
QObject.connect(widget, QtCore.SIGNAL(‘signalname’), slot_function)
Viene definita solo la seguente sintassi:
widget.signal.connect(slot_function)
Le classi definite nel modulo QtGui precedente sono state distribuite in QtGui, QtPrintSupport un QtWidgets moduli.
Nella nuova classe QFileDialog, The getOpenFileNameAndFilter() metodo è sostituito da getOpenFileName(), getOpenFileNamesAndFilter() di getOpenFileNames() e getSaveFileNameAndFilter() di getSaveFileName(). Anche le firme più vecchie di questi metodi sono cambiate.
PyQt5 non ha la possibilità di definire una classe che è sottoclasse da più di una classe Qt.
pyuic5 l'utility (per generare codice Python dal file XML del designer) non supporta il flag --pyqt3-wrapper.
pyrcc5non supporta i flag -py2 e -py3. L'output di pyrcc5 è compatibile con tutte le versioni di Python dalla v2.6 in poi.
PyQt5 invoca sempre sip.setdestroyonexit() automaticamente e chiama il distruttore C ++ di tutte le istanze di cui è proprietario.