Нарушение размера окна при переключении между окнами

Я использую PyQt5 для создания настольного приложения и когда я переключаюсь в другое окно и переключаюсь обратно, окно сжимается.

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.ui = Ui_CSHero()
        self.ui.setupUi(self)
        self.ui.pushButton_2.clicked.connect(self.open_deposit_page)
        self.deposit_page = DepositPage()
        self.layout = QVBoxLayout()
        self.widget = QWidget()

    def open_deposit_page(self):
    """
    Visit to deposit page and upload data from the database.
    """
        m = MainWindow()
        deposit_page = DepositPage()
        layout = QVBoxLayout()
        self.layout.addWidget(deposit_page)
        self.widget.setLayout(self.layout)
        self.widget.setFixedWidth(1100)
        self.widget.setFixedHeight(600)
        self.setCentralWidget(self.widget)

class DepositPage(QtWidgets.QMainWindow):
    def __init__(self):
        super(DepositPage, self).__init__()
        self.ui_table = UiMainWindow()
        self.ui_table.setupUi(self)
        self.ui_table.back_button.clicked.connect(self.back_main_page)

    def back_main_page(self):
        main_window = MainWindow()
        layout = QHBoxLayout()
        widget = QWidget()
        layout.addWidget(main_window)
        widget.setLayout(layout)
        widget.setFixedWidth(1100)
        widget.setFixedHeight(600)
        self.setCentralWidget(widget)


app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())

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

Автор решения: S. Nick

Один из вариантов может выглядеть так:

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *


class DepositPage(QtWidgets.QMainWindow):
    def __init__(self, parent=None):                                          # +++ parent
        super(DepositPage, self).__init__()
# ???        self.ui_table = UiMainWindow()
# ???        self.ui_table.setupUi(self)

        self.centralWidget = QWidget()
        self.setCentralWidget(self.centralWidget)
        
        self.resize(800, 500)
        self.setWindowTitle('DepositPage')
        
        self.parent = parent                                                  # +++ parent

        self.back_button = QPushButton('Back Main_page')        
        self.back_button.clicked.connect(self.back_main_page)
        
        self.layout = QVBoxLayout(self.centralWidget)
        self.layout.addWidget(self.back_button,  alignment = Qt.AlignBottom)

    def back_main_page(self):
        self.parent.show()                                                    # +++ parent
        self.hide()


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        
# ???        self.ui = Ui_CSHero()
# ???        self.ui.setupUi(self)

        self.centralWidget = QWidget()
        self.setCentralWidget(self.centralWidget)

        self.pushButton_2 = QPushButton('Open deposit_page')
        self.pushButton_2.clicked.connect(self.open_deposit_page)
        
        self.layout = QVBoxLayout(self.centralWidget)
        self.layout.addWidget(self.pushButton_2,  alignment = Qt.AlignBottom)

        self.deposit_page = DepositPage(self)                                    # +++ self

    def open_deposit_page(self):
        """ Посетите страницу депозита и загрузите данные из базы данных. """
        
        self.deposit_page.show()
        self.hide()
        

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.setWindowTitle('MainWindow')
    main_window.resize(1100, 600)
    main_window.show()
    sys.exit(app.exec_())

введите сюда описание изображения

введите сюда описание изображения

→ Ссылка