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.