PyQt: cómo cargar varios archivos .ui desde Qt Designer

Quiero agregar una ventana de inicio que cuando haga clic en el botón, abrirá otra ventana y cerrará la ventana actual. Para cada ventana, se ha separado la interfaz de usuario que se creó desde Qt Designer en forma .ui.

Cargo ambos archivos uic.loadUiType() través de uic.loadUiType() . La primera ventana (la primera interfaz de usuario) normalmente puede mostrar su interfaz de usuario, pero cuando hago clic en el botón para ir a otra ventana, otra interfaz de usuario (la segunda interfaz de usuario) no funciona. Le gusta abrir ventana en blanco.

Otro problema es si carga la primera interfaz de usuario y luego la cambio a la segunda interfaz de usuario (eliminar esa clase y cambiar a otra clase, también eliminar uic.loadUiType ()), la segunda interfaz de usuario todavía no funciona (mostrar ventana en blanco)

Por favor ayuda … investigo antes de crear esta pregunta pero no puedo encontrar la respuesta.

Aquí está mi código. ¿Cómo puedo arreglarlo?

 import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QIcon from PyQt5 import uic #load both ui file uifile_1 = 'UI/openPage.ui' form_1, base_1 = uic.loadUiType(uifile_1) uifile_2 = 'UI/mainPage.ui' form_2, base_2 = uic.loadUiType(uifile_2) class Example(base_1, form_1): def __init__(self): super(base_1,self).__init__() self.setupUi(self) self.startButton.clicked.connect(self.change) def change(self): self.main = MainPage() self.main.show() class MainPage(base_2, form_2): def __int__(self): super(base_2, self).__init__() self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() ex.show() sys.exit(app.exec_()) 

Primero tienes un error, debes cambiar __int__ a __init__ . Para cerrar la ventana llama al método close() .

 import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QIcon from PyQt5 import uic #load both ui file uifile_1 = 'UI/openPage.ui' form_1, base_1 = uic.loadUiType(uifile_1) uifile_2 = 'UI/mainPage.ui' form_2, base_2 = uic.loadUiType(uifile_2) class Example(base_1, form_1): def __init__(self): super(base_1,self).__init__() self.setupUi(self) self.startButton.clicked.connect(self.change) def change(self): self.main = MainPage() self.main.show() self.close() class MainPage(base_2, form_2): def __init__(self): super(base_2, self).__init__() self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() ex.show() sys.exit(app.exec_())