Чтобы дочерняя форма в PyQt запоминала свое состояние при повторном открытии, вам нужно сохранить это состояние внутри класса формы. Это можно сделать, используя методы closeEvent
и showEvent
класса формы.
В методе closeEvent
класса формы вы можете сохранить необходимую информацию о состоянии формы в какой-либо переменной или файле. Например, вы можете сохранить положение и размеры окна, состояние чекбоксов, значения полей ввода или любую другую информацию, которую хотите сохранить.
В методе showEvent
класса формы вы можете восстановить сохраненное состояние и применить его к форме при ее открытии. Например, вы можете установить сохраненное положение и размеры окна, отметить чекбоксы, установить значения полей ввода и так далее.
Вот пример кода, который демонстрирует этот подход:
from PyQt5.QtWidgets import QMainWindow, QApplication from PyQt5.QtCore import QSettings class ChildForm(QMainWindow): def __init__(self, parent=None): super(ChildForm, self).__init__(parent) self.settings = QSettings('YourCompanyName', 'YourAppName') # Установка начального состояния формы self.setGeometry(100, 100, 400, 300) # Загрузка состояния формы из сохраненных настроек self.restoreState() def closeEvent(self, event): # Сохранение состояния формы в настройках self.settings.setValue('geometry', self.saveGeometry()) # Call closeEvent on the parent class super(ChildForm, self).closeEvent(event) def showEvent(self, event): # Загрузка состояния формы из сохраненных настроек self.restoreState() # Call showEvent on the parent class super(ChildForm, self).showEvent(event) def restoreState(self): # Восстановление состояния формы из сохраненных настроек if self.settings.contains('geometry'): self.restoreGeometry(self.settings.value('geometry')) # Ваш код для создания главной формы и открытия дочерней формы # ... # Создание приложения и запуск цикла обработки событий app = QApplication([]) mainWindow = MainWindow() mainWindow.show() app.exec_()
В этом примере мы используем класс QSettings для сохранения и загрузки состояния формы. QSettings позволяет сохранять и загружать настройки приложения в различных операционных системах, включая положение и размеры окна.
Вы можете использовать другой способ сохранения и восстановления состояния формы в зависимости от ваших потребностей. Например, вы можете сохранять состояние в файле или базе данных.