Python qt Как сделать чтобы дочерняя форма помнила свое состояние при повторном открытие?

Чтобы дочерняя форма в 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 позволяет сохранять и загружать настройки приложения в различных операционных системах, включая положение и размеры окна.

Вы можете использовать другой способ сохранения и восстановления состояния формы в зависимости от ваших потребностей. Например, вы можете сохранять состояние в файле или базе данных.