Как открыть новый mainWindow и закрыть уже открытый нажатием на кнопку?

При запуске программы, открывается окно регистрации типа mainWindow. Необходимо, что бы при нажатии на кнопку открывалось новое окно mainWindow и закрывалось предыдущее.


Первое окно


Второе окно


Окно на втором скриншоте должно открываться нажатием на кнопку Авторизоваться на первом окне, вслед за тем первое окно должно закрыться.


from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PyQt5.QtGui import QIcon
import sys

class _kurs_stack():
    def __init__(self):

        # Второе окно к формате .ui
        self.Form1, self.Windows1 = uic.loadUiType("_kurs_stack.ui")
        self.win1 = QtWidgets.QApplication([])
        self.windows1 = self.Windows1()
        self.ui1 = self.Form1()
        self.ui1.setupUi(self.windows1)
        self.windows1.show()
        self.win1.exec()

class _curs_tab():
    def __init__(self):
        # Первое окно в формате .ui
        self.Form, self.Windows = uic.loadUiType("curs_tab.ui")
        self.win = QtWidgets.QApplication([])
        windows = self.Windows()
        self.ui = self.Form()
        self.ui.setupUi(windows)

        #Кнопка, нажатие которой должно открывать второе окно
        self.ui.auth.clicked.connect(self.open_from_auth)

        windows.show()
        self.win.exec()
    #Команда открытия второго окна
    def open_from_auth(self):
        self.twently=_kurs_stack()

firstly = _curs_tab()

Проблема в закрытии второго окна сразу после его открытия, даже без прогрузки виджетов.

Нужна подобная реализация, в которой окна, помимо открытия второго первым, работали независимо друг от друга.


Ответы (1 шт):

Автор решения: Gelly Houp

Проблема решается использованием функции hide().


from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PyQt5.QtGui import QIcon
import sys

class _kurs_stack():
    def __init__(self):

        # Второе окно к формате .ui
        self.Form1, self.Windows1 = uic.loadUiType("_kurs_stack.ui")
        self.win1 = QtWidgets.QApplication([])
        self.windows1 = self.Windows1()
        self.ui1 = self.Form1()
        self.ui1.setupUi(self.windows1)
        self.windows1.show()
        self.win1.exec()

class _curs_tab():
    def __init__(self):
        # Первое окно в формате .ui
        self.Form, self.Windows = uic.loadUiType("curs_tab.ui")
        self.win = QtWidgets.QApplication([])
        windows = self.Windows()
        self.ui = self.Form()
        self.ui.setupUi(windows)

        #Кнопка, нажатие которой должно открывать второе окно
        self.ui.auth.clicked.connect(self.open_from_auth)

        windows.show()
        self.win.exec()
    #Команда открытия второго окна
    def open_from_auth(self):
        self.twently=_kurs_stack()
        windows.hide()

firstly = _curs_tab()
→ Ссылка