Не могу передать данные из одного класса в другой (python3, PyQt5)

Я так и не смог понять, как передать данные из одного класса в другой. Есть два дисплея, на одном вводят информацию, на другой она передается. Для каждого дисплея есть по 2 класса. Классы в префиксом "UI" созданы с помощью PyQt. Два других созданы для произведения расчетов.

Я пишу self далее название того класса, передаю данные и название элемента, в который инфа отправляется, но у меня не выходит

В строке кода 209 пытаюсь отправить данные для секундомера(минуты/секунды) на первый дисплей - Выдает ошибку.
В строке 242 пытаюсь отправить данные по нажатию кнопки на первый дисплей - так же безуспешно.
На дисплее, где ввожу данные, их получается обработать, и показать на этом же дисплее, а передать на другой не получается.

import sys
from tkinter.tix import Form
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QPainter, QPen, QBrush
from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QGridLayout, QSizePolicy, QApplication, QMainWindow, QLineEdit, QVBoxLayout


class KumiteSWindow_Ui(object):
    def setupUi2(self, Form):
        Form.setObjectName("Form")
        Form.resize(920, 680)

        self.time_21 = QtWidgets.QLabel(Form)
        self.time_21.setGeometry(QtCore.QRect(250, 0, 191, 141))
        self.time_21.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
        self.time_21.setObjectName("time_1")

        self.time_22 = QtWidgets.QLabel(Form)
        self.time_22.setGeometry(QtCore.QRect(480, 0, 221, 141))
        self.time_22.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
        self.time_22.setObjectName("time_2")

        self.time_23 = QtWidgets.QLabel(Form)
        self.time_23.setGeometry(QtCore.QRect(450, 0, 21, 141))
        self.time_23.setAlignment(QtCore.Qt.AlignCenter)
        self.time_23.setObjectName("time_3")

        self.frame = QtWidgets.QFrame(Form)
        self.frame.setGeometry(QtCore.QRect(120, 750, 640, 71))
        self.frame.setStyleSheet("background-color: white; border-color: rgb(0, 0, 0)")
        self.frame.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame.setObjectName("frame")

        self.label_score21 = QtWidgets.QLabel(Form)
        self.label_score21.setGeometry(QtCore.QRect(265, 100, 350, 450))
        self.label_score21.setAlignment(QtCore.Qt.AlignCenter)
        self.label_score21.setObjectName("label_score1")

        self.frame_2 = QtWidgets.QFrame(Form)
        self.frame_2.setGeometry(QtCore.QRect(120, 890, 640, 71))
        self.frame_2.setStyleSheet("background-color: white")
        self.frame_2.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame_2.setObjectName("frame_2")

        self.time_21.raise_()
        self.time_22.raise_()
        self.time_23.raise_()
        self.frame_2.raise_()
        self.label_score21.raise_()
        self.frame.raise_()

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Display"))
        self.time_21.setText(_translate("Form", "00"))
        self.time_22.setText(_translate("Form", "00"))
        self.time_23.setText(_translate("Form", ":"))
        self.label_score21.setText(_translate("Form", "0"))


class KumiteSecondWindow(QWidget, KumiteSWindow_Ui):
    def __init__(self):
        super().__init__()
        self.setupUi2(self)


class KumiteMainWindow_Ui(object):
    def setupUi(self, Form2):
        Form2.setObjectName("Form")
        Form2.resize(900, 500)
        Form2.setStyleSheet("background-color: rgb(255, 255, 255);")

        self.time_11 = QtWidgets.QLabel(Form2)
        self.time_11.setGeometry(QtCore.QRect(362, 0, 80, 60))
        self.time_11.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
        self.time_11.setObjectName("time_1")

        self.time_12 = QtWidgets.QLabel(Form2)
        self.time_12.setGeometry(QtCore.QRect(458, 0, 80, 60))
        self.time_12.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
        self.time_12.setObjectName("time_2")

        self.time_13 = QtWidgets.QLabel(Form2)
        self.time_13.setGeometry(QtCore.QRect(440, 0, 21, 60))
        self.time_13.setAlignment(QtCore.Qt.AlignCenter)
        self.time_13.setObjectName("time_3")

        self.time_14 = QtWidgets.QLabel(Form2)
        self.time_14.setGeometry(QtCore.QRect(535, 35, 31, 21))
        self.time_14.setAlignment(QtCore.Qt.AlignCenter)
        self.time_14.setObjectName("time_4")

        self.frame_red1 = QtWidgets.QFrame(Form2)
        self.frame_red1.setGeometry(QtCore.QRect(25, 60, 400, 240))
        self.frame_red1.setStyleSheet("background-color: rgb(255, 222, 219);")
        self.frame_red1.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_red1.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_red1.setObjectName("frame_red")

        self.label_score11 = QtWidgets.QLabel(self.frame_red1)
        self.label_score11.setGeometry(QtCore.QRect(150, 20, 100, 200))
        self.label_score11.setAlignment(QtCore.Qt.AlignCenter)
        self.label_score11.setObjectName("label_score1")

        self.score_red_0 = QtWidgets.QRadioButton(self.frame_red1)
        self.score_red_0.setGeometry(QtCore.QRect(10, 8, 40, 25))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        font.setPointSize(15)
        self.score_red_0.setFont(font)
        self.score_red_0.setChecked(True)
        self.score_red_0.setObjectName("score_red_0")

        self.score_red_1 = QtWidgets.QRadioButton(self.frame_red1)
        self.score_red_1.setGeometry(QtCore.QRect(10, 41, 40, 25))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        font.setPointSize(15)
        self.score_red_1.setFont(font)
        self.score_red_1.setObjectName("score_red_1")

        self.score_red_2 = QtWidgets.QRadioButton(self.frame_red1)
        self.score_red_2.setGeometry(QtCore.QRect(10, 74, 40, 25))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        font.setPointSize(15)
        self.score_red_2.setFont(font)
        self.score_red_2.setObjectName("score_red_2")

        self.pushButton_reset = QtWidgets.QPushButton(Form2)
        self.pushButton_reset.setGeometry(QtCore.QRect(570, 15, 81, 30))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        self.pushButton_reset.setFont(font)
        self.pushButton_reset.setObjectName("pushButton_reset")

        self.pushButton_pause = QtWidgets.QPushButton(Form2)
        self.pushButton_pause.setGeometry(QtCore.QRect(230, 20, 111, 23))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        self.pushButton_pause.setFont(font)
        self.pushButton_pause.setObjectName("pushButton_pause")

        self.pushButton_start = QtWidgets.QPushButton(Form2)
        self.pushButton_start.setGeometry(QtCore.QRect(140, 20, 75, 23))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        self.pushButton_start.setFont(font)
        self.pushButton_start.setObjectName("pushButton_start")


        self.frame_red1.raise_()
        self.time_11.raise_()
        self.time_12.raise_()
        self.time_13.raise_()
        self.pushButton_reset.raise_()
        self.pushButton_pause.raise_()
        self.pushButton_start.raise_()

        self.retranslateUi(Form2)
        QtCore.QMetaObject.connectSlotsByName(Form2)

    def retranslateUi(self, Form2):
        _translate = QtCore.QCoreApplication.translate
        Form2.setWindowTitle(_translate("Form2", "DisplayDataInput"))
        self.time_11.setText(_translate("Form2", "00"))
        self.time_12.setText(_translate("Form2", "00"))
        self.time_13.setText(_translate("Form2", ":"))
        self.time_14.setText(_translate("Form2", "00"))
        self.label_score11.setText(_translate("Form2", "0"))
        self.score_red_1.setText(_translate("Form2", " 1"))
        self.score_red_2.setText(_translate("Form2", "2"))
        self.pushButton_reset.setText(_translate("Form2", "Новый бой\n(обнулить всё)"))
        self.pushButton_pause.setText(_translate("Form2", "Обнулить таймер"))
        self.pushButton_start.setText(_translate("Form2", "Start"))


class KumiteMainWindow(QWidget, KumiteMainWindow_Ui):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        self.KumiteSecondWindow = KumiteSecondWindow

        self.pushButton_start.clicked.connect(self.start_timer)
        self.pushButton_pause.clicked.connect(self.reset_timer)
        self.pushButton_reset.clicked.connect(self.reset_all)
        self.score_red_0.toggled.connect(self.onClickedR)
        self.score_red_1.toggled.connect(self.onClickedR)
        self.score_red_2.toggled.connect(self.onClickedR)

        self.tics = 0
        self.increment = 100
        self.timer = QTimer()
        self.timer.timeout.connect(self.update_time)

    def update_time(self):
        self.tics += self.increment
        m = (self.tics // 60000) % 60
        s = (self.tics // 1000) % 60
        ms = (self.tics // 10) % 100
        self.time_11.setText(f'{m:02d}')
        self.time_12.setText(f'{s:02d}')
        self.time_14.setText(f'{ms:01d}')
#        self.KumiteSecondWindow.time_21.setText(f'{m:02d}')

    def start_timer(self):
        if self.pushButton_start.text() == 'Start':
            self.pushButton_start.setText('Stop')
            self.timer.start(self.increment)
        else:
            self.timer.stop()
            self.pushButton_start.setText('Start')

    def reset_timer(self):
        if self.pushButton_start.text() == 'Stop':
            self.pushButton_pause.setText('Останови бой')
        else:
            self.tics = 0
            self.time_11.setText('00')
            self.time_12.setText('00')
            self.time_14.setText('00')
            self.pushButton_pause.setText('Обнулить таймер')

    def reset_all(self):
        if self.pushButton_start.text() == 'Stop':
            self.pushButton_reset.setText('Останови бой')
        else:
            self.tics = 0
            self.time_11.setText('00')
            self.time_12.setText('00')
            self.time_14.setText('00')

    def onClickedR(self):
        radio = self.sender()
        if radio.isChecked():
            self.label_score11.setText(radio.text())
#            self.KumiteSecondWindow.label_score21.setText(radio.text())

    def onClickedW(self):
        radio = self.sender()
        if radio.isChecked():
            self.label_score12.setText(radio.text())


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    Form = KumiteSecondWindow()
    Form2 = KumiteMainWindow()
    Form.show()
    Form2.show()
    sys.exit(app.exec_())```

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

Автор решения: S. Nick

Вы почти были у цели. Я отметил для вас строки, в которые внес изменения. Если что-то не понятно - спросите.

import sys
# ? from tkinter.tix import Form
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QPainter, QPen, QBrush
from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QGridLayout, \
    QSizePolicy, QApplication, QMainWindow, QLineEdit, QVBoxLayout


class KumiteSWindow_Ui(object):
    def setupUi2(self, Form):
        Form.setObjectName("Form")
        Form.resize(920, 680)

        self.time_21 = QtWidgets.QLabel(Form)
        self.time_21.setGeometry(QtCore.QRect(250, 0, 191, 141))
        self.time_21.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
        self.time_21.setObjectName("time_1")

        self.time_22 = QtWidgets.QLabel(Form)
        self.time_22.setGeometry(QtCore.QRect(480, 0, 221, 141))
        self.time_22.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
        self.time_22.setObjectName("time_2")

        self.time_23 = QtWidgets.QLabel(Form)
        self.time_23.setGeometry(QtCore.QRect(450, 0, 21, 141))
        self.time_23.setAlignment(QtCore.Qt.AlignCenter)
        self.time_23.setObjectName("time_3")

        self.frame = QtWidgets.QFrame(Form)
        self.frame.setGeometry(QtCore.QRect(120, 750, 640, 71))
        self.frame.setStyleSheet("background-color: white; border-color: rgb(0, 0, 0)")
        self.frame.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame.setObjectName("frame")

        self.label_score21 = QtWidgets.QLabel(Form)
        self.label_score21.setGeometry(QtCore.QRect(265, 100, 350, 450))
        self.label_score21.setAlignment(QtCore.Qt.AlignCenter)
        self.label_score21.setObjectName("label_score1")

        self.frame_2 = QtWidgets.QFrame(Form)
        self.frame_2.setGeometry(QtCore.QRect(120, 890, 640, 71))
        self.frame_2.setStyleSheet("background-color: white")
        self.frame_2.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame_2.setObjectName("frame_2")

        self.time_21.raise_()
        self.time_22.raise_()
        self.time_23.raise_()
        self.frame_2.raise_()
        self.label_score21.raise_()
        self.frame.raise_()

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Display"))
        self.time_21.setText(_translate("Form", "00"))
        self.time_22.setText(_translate("Form", "00"))
        self.time_23.setText(_translate("Form", ":"))
        self.label_score21.setText(_translate("Form", "0"))


class KumiteMainWindow_Ui(object):
    def setupUi(self, Form2):
        Form2.setObjectName("Form")
        Form2.resize(900, 500)
        Form2.setStyleSheet("background-color: rgb(255, 255, 255);")

        self.time_11 = QtWidgets.QLabel(Form2)
#        self.time_11.setGeometry(QtCore.QRect(362, 0, 80, 60))
        self.time_11.setGeometry(QtCore.QRect(350, 0, 40, 60))                       # +
        self.time_11.setAlignment(QtCore.Qt.AlignRight | 
                                  QtCore.Qt.AlignTrailing | 
                                  QtCore.Qt.AlignVCenter)
        self.time_11.setObjectName("time_1")

        self.time_12 = QtWidgets.QLabel(Form2)
#        self.time_12.setGeometry(QtCore.QRect(458, 0, 80, 60))
        self.time_12.setGeometry(QtCore.QRect(400, 0, 40, 60))                       # +
        
        self.time_12.setAlignment(QtCore.Qt.AlignLeading | 
                                  QtCore.Qt.AlignLeft | 
                                  QtCore.Qt.AlignVCenter)
        self.time_12.setObjectName("time_2")

        self.time_13 = QtWidgets.QLabel(Form2)
#        self.time_13.setGeometry(QtCore.QRect(440, 0, 21, 60))
        self.time_13.setGeometry(QtCore.QRect(440, 0, 10, 60))                       # +

        self.time_13.setAlignment(QtCore.Qt.AlignCenter)
        self.time_13.setObjectName("time_3")

        self.time_14 = QtWidgets.QLabel(Form2)
#        self.time_14.setGeometry(QtCore.QRect(450, 0, 40, 21))
        self.time_14.setGeometry(QtCore.QRect(460, 0, 40, 60))                       # +
        
        self.time_14.setAlignment(QtCore.Qt.AlignCenter)
        self.time_14.setObjectName("time_4")

        self.frame_red1 = QtWidgets.QFrame(Form2)
        self.frame_red1.setGeometry(QtCore.QRect(25, 60, 400, 240))
        self.frame_red1.setStyleSheet("background-color: rgb(255, 222, 219);")
        self.frame_red1.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_red1.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_red1.setObjectName("frame_red")

        self.label_score11 = QtWidgets.QLabel(self.frame_red1)
        self.label_score11.setGeometry(QtCore.QRect(150, 20, 100, 200))
        self.label_score11.setAlignment(QtCore.Qt.AlignCenter)
        self.label_score11.setObjectName("label_score1")

        self.score_red_0 = QtWidgets.QRadioButton(self.frame_red1)
        self.score_red_0.setGeometry(QtCore.QRect(10, 8, 40, 25))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        font.setPointSize(15)
        self.score_red_0.setFont(font)
        self.score_red_0.setChecked(True)
        self.score_red_0.setObjectName("score_red_0")

        self.score_red_1 = QtWidgets.QRadioButton(self.frame_red1)
        self.score_red_1.setGeometry(QtCore.QRect(10, 41, 40, 25))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        font.setPointSize(15)
        self.score_red_1.setFont(font)
        self.score_red_1.setObjectName("score_red_1")

        self.score_red_2 = QtWidgets.QRadioButton(self.frame_red1)
        self.score_red_2.setGeometry(QtCore.QRect(10, 74, 40, 25))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        font.setPointSize(15)
        self.score_red_2.setFont(font)
        self.score_red_2.setObjectName("score_red_2")

        self.pushButton_reset = QtWidgets.QPushButton(Form2)
        self.pushButton_reset.setGeometry(QtCore.QRect(570, 15, 81, 30))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        self.pushButton_reset.setFont(font)
        self.pushButton_reset.setObjectName("pushButton_reset")

        self.pushButton_pause = QtWidgets.QPushButton(Form2)
        self.pushButton_pause.setGeometry(QtCore.QRect(230, 20, 111, 23))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        self.pushButton_pause.setFont(font)
        self.pushButton_pause.setObjectName("pushButton_pause")

        self.pushButton_start = QtWidgets.QPushButton(Form2)
        self.pushButton_start.setGeometry(QtCore.QRect(140, 20, 75, 23))
        font = QtGui.QFont()
        font.setFamily("Gotham")
        self.pushButton_start.setFont(font)
        self.pushButton_start.setObjectName("pushButton_start")


        self.frame_red1.raise_()
        self.time_11.raise_()
        self.time_12.raise_()
        self.time_13.raise_()
        self.pushButton_reset.raise_()
        self.pushButton_pause.raise_()
        self.pushButton_start.raise_()

        self.retranslateUi(Form2)
        QtCore.QMetaObject.connectSlotsByName(Form2)

    def retranslateUi(self, Form2):
        _translate = QtCore.QCoreApplication.translate
        Form2.setWindowTitle(_translate("Form2", "DisplayDataInput"))
        self.time_11.setText(_translate("Form2", "00"))
        self.time_12.setText(_translate("Form2", "00"))
        self.time_13.setText(_translate("Form2", ":"))
        self.time_14.setText(_translate("Form2", "00"))
        self.label_score11.setText(_translate("Form2", "0"))
        self.score_red_1.setText(_translate("Form2", " 1"))
        self.score_red_2.setText(_translate("Form2", "2"))
        self.pushButton_reset.setText(_translate("Form2", "Новый бой\n(обнулить всё)"))
        self.pushButton_pause.setText(_translate("Form2", "Обнулить таймер"))
        self.pushButton_start.setText(_translate("Form2", "Start"))


class KumiteSecondWindow(QWidget, KumiteSWindow_Ui):
    def __init__(self):
        super().__init__()
        self.setupUi2(self)


class KumiteMainWindow(QWidget, KumiteMainWindow_Ui):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

#        self.KumiteSecondWindow = KumiteSecondWindow
#             ^
# не надо экземпляр класса называть с заглавной буквы
#            v
#            v                                  скобки !!!
#            v                                      vv                      # <<< !!!
        self.kumiteSecondWindow = KumiteSecondWindow()                      # kumiteSecondWindow
        self.kumiteSecondWindow.show()                                      # +++

        self.pushButton_start.clicked.connect(self.start_timer)
        self.pushButton_pause.clicked.connect(self.reset_timer)
        self.pushButton_reset.clicked.connect(self.reset_all)
        self.score_red_0.toggled.connect(self.onClickedR)
        self.score_red_1.toggled.connect(self.onClickedR)
        self.score_red_2.toggled.connect(self.onClickedR)

        self.tics = 0
        self.increment = 100
        self.timer = QTimer()
        self.timer.timeout.connect(self.update_time)

    def update_time(self):
        self.tics += self.increment
        m = (self.tics // 60000) % 60
        s = (self.tics // 1000) % 60
        ms = (self.tics // 10) % 100
        self.time_11.setText(f'm : {m:02d}')
        self.time_12.setText(f's : {s:02d}')
        self.time_14.setText(f'ms: {ms:01d}')
        
#        self.KumiteSecondWindow.time_21.setText(f'{m:02d}')
        self.kumiteSecondWindow.time_21.setText(f'{m:02d}')
        self.kumiteSecondWindow.time_22.setText(f'{s:02d}')                            # +++

    def start_timer(self):
        if self.pushButton_start.text() == 'Start':
            self.pushButton_start.setText('Stop')
            self.timer.start(self.increment)
        else:
            self.timer.stop()
            self.pushButton_start.setText('Start')

    def reset_timer(self):
        if self.pushButton_start.text() == 'Stop':
            self.pushButton_pause.setText('Останови бой')
        else:
            self.tics = 0
            self.time_11.setText('00')
            self.time_12.setText('00')
            self.time_14.setText('00')
            self.pushButton_pause.setText('Обнулить таймер')

    def reset_all(self):
        if self.pushButton_start.text() == 'Stop':
            self.pushButton_reset.setText('Останови бой')
        else:
            self.tics = 0
            self.time_11.setText('00')
            self.time_12.setText('00')
            self.time_14.setText('00')

    def onClickedR(self):
        radio = self.sender()
        if radio.isChecked():
            self.label_score11.setText(radio.text())
            self.kumiteSecondWindow.label_score21.setText(radio.text())            # !!!

    def onClickedW(self):
        radio = self.sender()
        if radio.isChecked():
            self.label_score12.setText(radio.text())


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
#    Form = KumiteSecondWindow()                                                   # НЕТ  !!!
    Form2 = KumiteMainWindow()
#    Form.show()                                                                   # НЕТ  !!!
    Form2.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка