Python . PyQt5 . Не могу понять как перезаписать атрибут формы
У меня есть метод "LoadForm" . В кнопках я указываю какой экземпляр загрузить (self.target_1 и тд) и какой атрибут из этой формы взять что бы установить начальную позициию и размер формы на рабочем столе (self.target_1.atr_pos_1). Проблема заключается в следущем: Я хочу при закрытии , изменении положения или изменения размера формы (self.target_1) перезаписать атрибут из которого я беру стартовое положение на последние изменения формы , что бы потом по кнопке вызвать стартвое положение последнего изменения формы . Простите если я плохо обьяснил ситуацию . Мне кажется что я вообще не то делаю , ибо я достаточно мало времени изучаю PyQt5 и ооп в python . Надеюсь на ваше понимание .
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from MainApp import Ui_MainWindow # Главная форма
from TargetDialog import TargetDialog
from SettingsDialog import SettingsDialog
# Главное окно
class MyWin(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
# Формы
self.target_1 = TargetDialog()
self.target_2 = TargetDialog()
self.target_3 = TargetDialog()
self.target_4 = TargetDialog()
self.target_5 = TargetDialog()
self.target_6 = TargetDialog()
self.target_7 = TargetDialog()
self.target_8 = TargetDialog()
# Вызываю форму по клику кнопки . Размер и позиция берется из заданного атрибута
self.ui.button_1.clicked.connect(lambda:self.LoadForm(self.target_1,self.target_1.atr_pos_1))
self.ui.button_2.clicked.connect(lambda:self.LoadForm(self.target_1,self.target_1.atr_pos_2))
self.ui.button_3.clicked.connect(lambda:self.LoadForm(self.target_1,self.target_1.atr_pos_3))
self.ui.button_4.clicked.connect(lambda: self.LoadForm(self.target_1self.target_1.atr_pos_4))
self.ui.button_5.clicked.connect(lambda: self.LoadForm(self.target_1self.target_1.atr_pos_5))
self.ui.button_6.clicked.connect(lambda: self.LoadForm(self.target_1self.target_1.atr_pos_6))
self.ui.button_7.clicked.connect(lambda: self.LoadForm(self.target_1self.target_1.atr_pos_7))
self.ui.button_8.clicked.connect(lambda: self.LoadForm(self.target_1self.target_1.atr_pos_8))
# Метод вызова формы
# Аргументы: 1 = экземпляр , 2 атрибут экземпляра
def LoadForm(self, obj , atr):
self.obj.setGeometry(atr[0], atr[1], atr[2], atr[3])
self.obj.show()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
my_app = MyWin()
my_app.show()
sys.exit(app.exec_())