PyQt4 a PyQt5 ¿cómo?

mi código creado con PyQt4 y quiero convertirlo a PyQt5. Probé algunos scripts para convertir pero nada cambió, excepto el nombre ¿Qué debo cambiar manualmente para que el código funcione con PyQt5? esta primera parte

import sys from pymaxwell import * from numpy import * from PyQt4 import QtGui, QtCore, uic from PyQt4.QtGui import QMainWindow, QApplication from PyQt4.QtCore import * from PyQt4.phonon import Phonon from ffmpy import FFmpeg import os import app_window_dark import about uifile = 'Ui/app_window_dark.ui' aboutfile = 'Ui/about.ui' Ui_MainWindow, QtBaseClass = uic.loadUiType(uifile) Ui_Dialog= uic.loadUiType(uifile) class About(QtGui.QMainWindow, about.Ui_Dialog): def __init__(self, parent=None): super(About, self).__init__() QtGui.QMainWindow.__init__(self, parent) Ui_Dialog.__init__(self) self.setWindowModality(QtCore.Qt.ApplicationModal) point = parent.rect().bottomRight() global_point = parent.mapToGlobal(point) self.move(global_point - QPoint(395, 265)) self.setupUi(self) class MyApp(QtGui.QMainWindow, app_window_dark.Ui_MainWindow): def __init__(self): super(MyApp, self).__init__() QtGui.QMainWindow.__init__(self) self.ui = Ui_MainWindow.__init__(self) self.setupUi(self) self.about_btn.clicked.connect(self.popup) #prev next self.btn_next.clicked.connect(self.renderSet) self.btn_prev.clicked.connect(self.renderSet) 

y esto

 if __name__ == "__main__": app = QApplication(sys.argv) #style = QApplication.setStyle('plastique') window = MyApp() window.setFixedSize(750, 320) window.show() sys.exit(app.exec_()) 

El cambio principal de Qt4 a Qt5 y, por lo tanto, de PyQt4 a PyQt5 es la reorganización de ciertas clases para que el proyecto Qt sea escalable y genere un ejecutable más pequeño.

La biblioteca QtGui se dividió en 2 submódulos: QtGui y QtWidgets, en el segundo solo los widgets, a saber, QMainWindow, QPushButton, etc. Y ese es el cambio que debe hacer:

 [...] from PyQt5 import QtGui, QtCore, uic, QtWidgets from PyQt5.QtWidgets import QMainWindow, QApplication from PyQt5.QtCore import * [...] Ui_MainWindow, QtBaseClass = uic.loadUiType(uifile) Ui_Dialog= uic.loadUiType(uifile) class About(QtWidgets.QMainWindow, about.Ui_Dialog): def __init__(self, parent=None): QtWidgets.QMainWindow.__init__(self, parent) self.setupUi(self) self.setWindowModality(QtCore.Qt.ApplicationModal) point = parent.rect().bottomRight() global_point = parent.mapToGlobal(point) self.move(global_point - QPoint(395, 265)) class MyApp(QtWidgets.QMainWindow, app_window_dark.Ui_MainWindow): def __init__(self): QtWidgets.QMainWindow.__init__(self) self.setupUi(self) self.about_btn.clicked.connect(self.popup) #prev next self.btn_next.clicked.connect(self.renderSet) self.btn_prev.clicked.connect(self.renderSet) 

Nota: Phonon no existe en PyQt5, debe usar QtMultimedia, una solución precisa que puede encontrar en la siguiente respuesta: Clase de fonón no presente en PyQt5