Нарушение размера окна при переключении между окнами
Я использую 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_())

