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.