PyQt5 - co nowego
PyQt5 API nie jest automatycznie kompatybilny z wcześniejszymi wersjami. Dlatego kod Pythona zawierający moduły PyQt4 powinien być aktualizowany ręcznie poprzez wprowadzenie odpowiednich zmian. W tym rozdziale wymieniono główne różnice między PyQt4 i PyQt5.
PyQt5 nie jest obsługiwany w wersjach Pythona starszych niż 2.6.
PyQt5 nie obsługuje metody connect () klasy QObject do połączenia sygnału z gniazdem. Dlatego użycie nie może być już wdrożone -
QObject.connect(widget, QtCore.SIGNAL(‘signalname’), slot_function)
Zdefiniowano tylko następującą składnię -
widget.signal.connect(slot_function)
Klasy zdefiniowane we wcześniejszym module QtGui zostały rozprowadzone w QtGui, QtPrintSupport na QtWidgets moduły.
W nowej klasie QFileDialog plik getOpenFileNameAndFilter() metoda jest zastąpiona przez getOpenFileName(), getOpenFileNamesAndFilter() przez getOpenFileNames() i getSaveFileNameAndFilter() przez getSaveFileName(). Starsze sygnatury tych metod również uległy zmianie.
PyQt5 nie ma możliwości zdefiniowania klasy, która jest podklasą z więcej niż jednej klasy Qt.
pyuic5 Narzędzie (do generowania kodu Pythona z pliku XML projektanta) nie obsługuje flagi --pyqt3-wrapper.
pyrcc5nie obsługuje flag -py2 i -py3. Wyjście pyrcc5 jest kompatybilne ze wszystkimi wersjami Pythona v2.6 i nowszymi.
PyQt5 zawsze wywołuje sip.setdestroyonexit() automatycznie i wywołuje destruktor C ++ wszystkich opakowanych instancji, których jest właścicielem.