Передача значений из класса в класс

Некорректно передается значение из класса ClassesPage1 в класс Parametrs. Некорректность заключается в том, что:

  1. Окно закрывается, когда я нажимаю на кнопку выбора ответа
  2. Во втором окне(которого не должно быть) все считается и выводится корректно. Эту строчку кода я закомментировал.
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *

import sys

class ClassesPage1(QtWidgets.QWizardPage):
    def __init__(self, parent=None, mean=None, *args, **kwargs):
        super(ClassesPage1, self).__init__(parent=None, *args, **kwargs)

        self.label_2 = QtWidgets.QLabel("lbl1...", self)
        self.label_2.setAlignment(Qt.AlignCenter)

        self.label_3 = QtWidgets.QLabel("lbl2...", self)
        self.label_3.setAlignment(Qt.AlignLeft)

        self.checkBox_1 = QtWidgets.QCheckBox('cb1...')
        self.checkBox_2 = QtWidgets.QCheckBox('cb2...')
        self.checkBox_3 = QtWidgets.QCheckBox('cb3...')
        self.checkBox_4 = QtWidgets.QCheckBox('cb4...')
    
        self.label_5 = QtWidgets.QLabel('lbl3...')

        self.layout = QtWidgets.QVBoxLayout()
        self.layout.addWidget(self.label_2)
        self.layout.addWidget(self.label_3)

        self.layout.addWidget(self.checkBox_1)
        self.layout.addWidget(self.checkBox_2)
        self.layout.addWidget(self.checkBox_3)
        self.layout.addWidget(self.checkBox_4)

        self.layout.addWidget(self.label_5)
        self.setLayout(self.layout)

        self.checkBox_1.stateChanged.connect(self.check)
        self.checkBox_2.stateChanged.connect(self.check)
        self.checkBox_3.stateChanged.connect(self.check)
        self.checkBox_4.stateChanged.connect(self.check)

        self.listCheckBox = [self.checkBox_1, self.checkBox_2, self.checkBox_3, self.checkBox_4]

        self.a = 0
        self.parent = parent
        self.mean = 0

    def check(self):
        self.a = 0
        for checkBox in self.listCheckBox:
            if checkBox.isChecked():
                self.a += 1
        self.mean = self.a / 4

        self.label_5.setText(f'Avarage: {self.mean}')
        self.parent._print()

    def nextId(self):
        return Wizard.class4



class Parametrs(QtWidgets.QWizardPage):
    def __init__(self, *args, **kwargs):
        super(Parametrs, self).__init__(*args, **kwargs)

        self.par = ClassesPage1(self)
        #self.par.show()
        print(f'__init__: par.mean = {self.par.mean}')

    def _print(self):
        print(f'par.mean = {self.par.mean:.2f}')

    def nextId(self):
        return Wizard.classParametrs1

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)

    wizard = Wizard()
    wizard.show()

    sys.exit(app.exec_()) 



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