Как правильно передать объект PyQt5 из одного класса в другой? (AttributeError: 'MainWindow' object has no attribute 'mainWindow1')
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtWidgets import QApplication, QMainWindow, \
QStackedWidget, QMessageBox, QFileDialog
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
MainWindow.setMinimumSize(QtCore.QSize(800, 600))
MainWindow.setMaximumSize(QtCore.QSize(800, 600))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.headind = QtWidgets.QLabel(self.centralwidget)
self.headind.setGeometry(QtCore.QRect(300, 0, 200, 100))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(36)
font.setBold(True)
font.setWeight(75)
self.headind.setFont(font)
self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
self.headind.setObjectName("headind")
self.pic_brain = QtWidgets.QLabel(self.centralwidget)
self.pic_brain.setGeometry(QtCore.QRect(300, 100, 200, 200))
self.pic_brain.setText("")
self.pic_brain.setPixmap(QtGui.QPixmap("D:/флэшка/Расортированные/2.2 курс/Практика/Test-IQ/pictures/brain_PNG61.png"))
self.pic_brain.setObjectName("pic_brain")
self.pic_p = QtWidgets.QFrame(self.centralwidget)
self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_p.setObjectName("pic_p")
self.pic_l = QtWidgets.QFrame(self.centralwidget)
self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_l.setObjectName("pic_l")
self.pB_test = QtWidgets.QPushButton(self.centralwidget)
self.pB_test.setGeometry(QtCore.QRect(225, 300, 350, 100))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.pB_test.setFont(font)
self.pB_test.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.pB_test.setObjectName("pB_test")
self.pB_doc = QtWidgets.QPushButton(self.centralwidget)
self.pB_doc.setGeometry(QtCore.QRect(275, 450, 250, 80))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.pB_doc.setFont(font)
self.pB_doc.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.pB_doc.setObjectName("pB_doc")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.headind.setText(_translate("MainWindow", "Test-IQ"))
self.pB_test.setText(_translate("MainWindow", "Начать тестирование"))
self.pB_doc.setText(_translate("MainWindow", "Документация"))
class Ui_Form1(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(800, 600)
Form.setMinimumSize(QtCore.QSize(800, 600))
Form.setMaximumSize(QtCore.QSize(800, 600))
self.pic_l = QtWidgets.QFrame(Form)
self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_l.setObjectName("pic_l")
self.pic_p = QtWidgets.QFrame(Form)
self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_p.setObjectName("pic_p")
self.vop1 = QtWidgets.QLabel(Form)
self.vop1.setGeometry(QtCore.QRect(20, 20, 781, 151))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.vop1.setFont(font)
self.vop1.setObjectName("vop1")
self.O_11 = QtWidgets.QPushButton(Form)
self.O_11.setGeometry(QtCore.QRect(150, 250, 100, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.O_11.setFont(font)
self.O_11.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.O_11.setObjectName("O_11")
self.O_21 = QtWidgets.QPushButton(Form)
self.O_21.setGeometry(QtCore.QRect(350, 250, 100, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.O_21.setFont(font)
self.O_21.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.O_21.setObjectName("O_21")
self.O_31 = QtWidgets.QPushButton(Form)
self.O_31.setGeometry(QtCore.QRect(550, 250, 100, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.O_31.setFont(font)
self.O_31.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.O_31.setObjectName("O_31")
self.O_41 = QtWidgets.QPushButton(Form)
self.O_41.setGeometry(QtCore.QRect(250, 350, 100, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.O_41.setFont(font)
self.O_41.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.O_41.setObjectName("O_41")
self.O_51 = QtWidgets.QPushButton(Form)
self.O_51.setGeometry(QtCore.QRect(450, 350, 100, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.O_51.setFont(font)
self.O_51.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.O_51.setObjectName("O_51")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.vop1.setText(_translate("Form", "1.Каким числом следует заменить знак вопроса?\n"
" 23 28 33 38 43 ?"))
self.O_11.setText(_translate("Form", "46"))
self.O_21.setText(_translate("Form", "47"))
self.O_31.setText(_translate("Form", "49"))
self.O_41.setText(_translate("Form", "50"))
self.O_51.setText(_translate("Form", "48"))
class registr(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(800, 600)
Form.setMinimumSize(QtCore.QSize(800, 600))
Form.setMaximumSize(QtCore.QSize(800, 600))
self.pic_l = QtWidgets.QFrame(Form)
self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_l.setObjectName("pic_l")
self.pB_test = QtWidgets.QPushButton(Form)
self.pB_test.setGeometry(QtCore.QRect(225, 460, 350, 100))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.pB_test.setFont(font)
self.pB_test.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.pB_test.setObjectName("pB_test")
self.headind = QtWidgets.QLabel(Form)
self.headind.setGeometry(QtCore.QRect(200, 0, 400, 70))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.headind.setFont(font)
self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
self.headind.setObjectName("headind")
self.pic_p = QtWidgets.QFrame(Form)
self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_p.setObjectName("pic_p")
self.lineEdit = QtWidgets.QLineEdit(Form)
self.lineEdit.setGeometry(QtCore.QRect(370, 130, 250, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.lineEdit.setFont(font)
self.lineEdit.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
self.lineEdit.setAlignment(QtCore.Qt.AlignCenter)
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(Form)
self.lineEdit_2.setGeometry(QtCore.QRect(370, 290, 250, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.lineEdit_2.setFont(font)
self.lineEdit_2.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
self.lineEdit_2.setAlignment(QtCore.Qt.AlignCenter)
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QtWidgets.QLineEdit(Form)
self.lineEdit_3.setGeometry(QtCore.QRect(370, 210, 250, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.lineEdit_3.setFont(font)
self.lineEdit_3.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
self.lineEdit_3.setAlignment(QtCore.Qt.AlignCenter)
self.lineEdit_3.setObjectName("lineEdit_3")
self.lineEdit_4 = QtWidgets.QLineEdit(Form)
self.lineEdit_4.setGeometry(QtCore.QRect(370, 370, 250, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.lineEdit_4.setFont(font)
self.lineEdit_4.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
self.lineEdit_4.setAlignment(QtCore.Qt.AlignCenter)
self.lineEdit_4.setObjectName("lineEdit_4")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(160, 130, 200, 50))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(160, 290, 200, 50))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(Form)
self.label_3.setGeometry(QtCore.QRect(160, 210, 200, 50))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.label_3.setFont(font)
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(Form)
self.label_4.setGeometry(QtCore.QRect(160, 370, 200, 50))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
self.label_4.setObjectName("label_4")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pB_test.setText(_translate("Form", "Закончить\n"
" тестирование"))
self.headind.setText(_translate("Form", "Регистрация пользователя"))
self.label.setText(_translate("Form", "Имя"))
self.label_2.setText(_translate("Form", "Отчество"))
self.label_3.setText(_translate("Form", "Фамилия"))
self.label_4.setText(_translate("Form", "Возраст"))
class resultv(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(800, 600)
self.pic_l = QtWidgets.QFrame(Form)
self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_l.setObjectName("pic_l")
self.headind = QtWidgets.QLabel(Form)
self.headind.setGeometry(QtCore.QRect(300, 0, 200, 100))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(36)
font.setBold(True)
font.setWeight(75)
self.headind.setFont(font)
self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
self.headind.setObjectName("headind")
self.pic_p = QtWidgets.QFrame(Form)
self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.fio = QtWidgets.QLabel(Form)
self.fio.setGeometry(QtCore.QRect(200, 110, 400, 80))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.fio.setFont(font)
self.fio.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"border-radius: 20")
self.fio.setObjectName("fio")
self.pic_p = QtWidgets.QFrame(Form)
self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_p.setObjectName("pic_p")
self.pB_main = QtWidgets.QPushButton(Form)
self.pB_main.setGeometry(QtCore.QRect(230, 410, 340, 80))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.pB_main.setFont(font)
self.pB_main.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.pB_main.setObjectName("pB_main")
self.pic_brain = QtWidgets.QLabel(Form)
self.pic_brain.setGeometry(QtCore.QRect(305, 190, 200, 190))
self.pic_brain.setText("")
self.pic_brain.setPixmap(QtGui.QPixmap("D:/флэшка/Расортированные/2.2 курс/Практика/Test-IQ/pictures/brain_PNG61.png"))
self.pic_brain.setScaledContents(False)
self.pic_brain.setObjectName("pic_brain")
self.result = QtWidgets.QLabel(Form)
self.result.setGeometry(QtCore.QRect(250, 180, 300, 200))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(100)
font.setBold(True)
font.setWeight(75)
self.result.setFont(font)
self.result.setStyleSheet("color: rgb(230, 0, 3);")
self.result.setAlignment(QtCore.Qt.AlignCenter)
self.result.setObjectName("result")
self.pB_wrong_answers = QtWidgets.QPushButton(Form)
self.pB_wrong_answers.setGeometry(QtCore.QRect(250, 510, 300, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.pB_wrong_answers.setFont(font)
self.pB_wrong_answers.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.pB_wrong_answers.setObjectName("pB_wrong_answers")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.headind.setText(_translate("Form", "Test-IQ"))
self.pB_main.setText(_translate("Form", "меню"))
self.result.setText(_translate("Form", "121"))
self.pB_wrong_answers.setText(_translate("Form", "неверные ответы"))
class resultat(QMainWindow, resultv):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.parent = parent
self.result.setText(self.parent.mainWindow1.o1)
class registra(QMainWindow, registr):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.parent = parent
self.pB_test.clicked.connect(self.ex)
self.lineEdit_4.setInputMask("100")
self.resultat = resultat(self.parent)
def rr(self):
name = self.lineEdit.text()
family_name = self.lineEdit_2.text()
otchestvo = self.lineEdit_3.text()
age = self.lineEdit_4.text()
self.tracker = True
if name == "" or family_name == "" or otchestvo == "" or age == "":
QMessageBox.critical(self, 'Ошибка!', "Вы вели не все поля")
self.tracker = False
def ex(self):
print(self.parent.o1)
self.rr()
if self.tracker == True:
self.resultat.show()
self.hide()
else:
return
class MainWindow1(QMainWindow, Ui_Form1):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.parent = parent
self.O_11.clicked.connect(self.O11)
self.O_21.clicked.connect(self.O21)
self.O_31.clicked.connect(self.O31)
self.O_41.clicked.connect(self.O41)
self.O_51.clicked.connect(self.O51)
self.o1 = ""
self.Registra = registra(self.parent)
self.resultat = resultat(self.parent)
def O11(self):
self.parent.o1 = "0"
self.Registra.show()
self.hide()
def O21(self):
self.parent.o1 = "0"
self.Registra.show()
self.hide()
def O31(self):
self.parent.o1 = "0"
self.Registra.show()
self.hide()
def O41(self):
self.parent.o1 = "0"
self.Registra.show()
self.hide()
def O51(self):
self.parent.o1 = "1"
print(self.o1)
self.Registra.show()
self.hide()
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.pB_test.clicked.connect(self.onMainWindow1)
self.pB_doc.clicked.connect(self.Dock)
self.mainWindow1 = MainWindow1(self)
self.Dock = Dock(self)
def onMainWindow1(self):
self.mainWindow1.show()
windows.hide()
def Dock(self):
self.Dock.show()
windows.hide()
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
startmenu_window = MainWindow()
windows = QStackedWidget()
windows.addWidget(startmenu_window)
windows.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Не очень понятная структура приложения.
Вы бы подумали как-то перестроить ее,
создав экземпляры всех объектов классов в главном классе MainWindow,
а затем уже как-то и логику подвязали.
Тем не менее я отметил для вас строки, в которые внес изменения, чтобы ваше приложение заработало.
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtWidgets import QApplication, QMainWindow, \
QStackedWidget, QMessageBox, QFileDialog
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
MainWindow.setMinimumSize(QtCore.QSize(800, 600))
MainWindow.setMaximumSize(QtCore.QSize(800, 600))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.headind = QtWidgets.QLabel(self.centralwidget)
self.headind.setGeometry(QtCore.QRect(300, 0, 200, 100))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(36)
font.setBold(True)
font.setWeight(75)
self.headind.setFont(font)
self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
self.headind.setObjectName("headind")
self.pic_brain = QtWidgets.QLabel(self.centralwidget)
self.pic_brain.setGeometry(QtCore.QRect(300, 100, 200, 200))
self.pic_brain.setText("")
self.pic_brain.setPixmap(QtGui.QPixmap("D:/флэшка/Расортированные/2.2 курс/Практика/Test-IQ/pictures/brain_PNG61.png"))
self.pic_brain.setObjectName("pic_brain")
self.pic_p = QtWidgets.QFrame(self.centralwidget)
self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_p.setObjectName("pic_p")
self.pic_l = QtWidgets.QFrame(self.centralwidget)
self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_l.setObjectName("pic_l")
self.pB_test = QtWidgets.QPushButton(self.centralwidget)
self.pB_test.setGeometry(QtCore.QRect(225, 300, 350, 100))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.pB_test.setFont(font)
self.pB_test.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.pB_test.setObjectName("pB_test")
self.pB_doc = QtWidgets.QPushButton(self.centralwidget)
self.pB_doc.setGeometry(QtCore.QRect(275, 450, 250, 80))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.pB_doc.setFont(font)
self.pB_doc.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.pB_doc.setObjectName("pB_doc")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.headind.setText(_translate("MainWindow", "Test-IQ"))
self.pB_test.setText(_translate("MainWindow", "Начать тестирование"))
self.pB_doc.setText(_translate("MainWindow", "Документация"))
class Ui_Form1(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(800, 600)
Form.setMinimumSize(QtCore.QSize(800, 600))
Form.setMaximumSize(QtCore.QSize(800, 600))
self.pic_l = QtWidgets.QFrame(Form)
self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_l.setObjectName("pic_l")
self.pic_p = QtWidgets.QFrame(Form)
self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_p.setObjectName("pic_p")
self.vop1 = QtWidgets.QLabel(Form)
self.vop1.setGeometry(QtCore.QRect(20, 20, 781, 151))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.vop1.setFont(font)
self.vop1.setObjectName("vop1")
self.O_11 = QtWidgets.QPushButton(Form)
self.O_11.setGeometry(QtCore.QRect(150, 250, 100, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.O_11.setFont(font)
self.O_11.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.O_11.setObjectName("O_11")
self.O_21 = QtWidgets.QPushButton(Form)
self.O_21.setGeometry(QtCore.QRect(350, 250, 100, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.O_21.setFont(font)
self.O_21.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.O_21.setObjectName("O_21")
self.O_31 = QtWidgets.QPushButton(Form)
self.O_31.setGeometry(QtCore.QRect(550, 250, 100, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.O_31.setFont(font)
self.O_31.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.O_31.setObjectName("O_31")
self.O_41 = QtWidgets.QPushButton(Form)
self.O_41.setGeometry(QtCore.QRect(250, 350, 100, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.O_41.setFont(font)
self.O_41.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.O_41.setObjectName("O_41")
self.O_51 = QtWidgets.QPushButton(Form)
self.O_51.setGeometry(QtCore.QRect(450, 350, 100, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.O_51.setFont(font)
self.O_51.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.O_51.setObjectName("O_51")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.vop1.setText(_translate("Form", "1.Каким числом следует заменить знак вопроса?\n"
" 23 28 33 38 43 ?"))
self.O_11.setText(_translate("Form", "46"))
self.O_21.setText(_translate("Form", "47"))
self.O_31.setText(_translate("Form", "49"))
self.O_41.setText(_translate("Form", "50"))
self.O_51.setText(_translate("Form", "48"))
class registr(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(800, 600)
Form.setMinimumSize(QtCore.QSize(800, 600))
Form.setMaximumSize(QtCore.QSize(800, 600))
self.pic_l = QtWidgets.QFrame(Form)
self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_l.setObjectName("pic_l")
self.pB_test = QtWidgets.QPushButton(Form)
self.pB_test.setGeometry(QtCore.QRect(225, 460, 350, 100))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.pB_test.setFont(font)
self.pB_test.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.pB_test.setObjectName("pB_test")
self.headind = QtWidgets.QLabel(Form)
self.headind.setGeometry(QtCore.QRect(200, 0, 400, 70))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(18)
font.setBold(True)
font.setWeight(75)
self.headind.setFont(font)
self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
self.headind.setObjectName("headind")
self.pic_p = QtWidgets.QFrame(Form)
self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_p.setObjectName("pic_p")
self.lineEdit = QtWidgets.QLineEdit(Form)
self.lineEdit.setGeometry(QtCore.QRect(370, 130, 250, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.lineEdit.setFont(font)
self.lineEdit.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
self.lineEdit.setAlignment(QtCore.Qt.AlignCenter)
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(Form)
self.lineEdit_2.setGeometry(QtCore.QRect(370, 290, 250, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.lineEdit_2.setFont(font)
self.lineEdit_2.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
self.lineEdit_2.setAlignment(QtCore.Qt.AlignCenter)
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QtWidgets.QLineEdit(Form)
self.lineEdit_3.setGeometry(QtCore.QRect(370, 210, 250, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.lineEdit_3.setFont(font)
self.lineEdit_3.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
self.lineEdit_3.setAlignment(QtCore.Qt.AlignCenter)
self.lineEdit_3.setObjectName("lineEdit_3")
self.lineEdit_4 = QtWidgets.QLineEdit(Form)
self.lineEdit_4.setGeometry(QtCore.QRect(370, 370, 250, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
self.lineEdit_4.setFont(font)
self.lineEdit_4.setStyleSheet("background-color: rgb(223, 223, 223);\n"
"\n"
"border: 2px solid rgb(0, 0, 0);\n"
"\n"
"border-radius: 30\n"
"")
self.lineEdit_4.setAlignment(QtCore.Qt.AlignCenter)
self.lineEdit_4.setObjectName("lineEdit_4")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(160, 130, 200, 50))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(160, 290, 200, 50))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(Form)
self.label_3.setGeometry(QtCore.QRect(160, 210, 200, 50))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.label_3.setFont(font)
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(Form)
self.label_4.setGeometry(QtCore.QRect(160, 370, 200, 50))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
self.label_4.setObjectName("label_4")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pB_test.setText(_translate("Form", "Закончить\n"
" тестирование"))
self.headind.setText(_translate("Form", "Регистрация пользователя"))
self.label.setText(_translate("Form", "Имя"))
self.label_2.setText(_translate("Form", "Отчество"))
self.label_3.setText(_translate("Form", "Фамилия"))
self.label_4.setText(_translate("Form", "Возраст"))
class resultv(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(800, 600)
self.pic_l = QtWidgets.QFrame(Form)
self.pic_l.setGeometry(QtCore.QRect(-220, 170, 300, 400))
self.pic_l.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_l.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_l.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_l.setObjectName("pic_l")
self.headind = QtWidgets.QLabel(Form)
self.headind.setGeometry(QtCore.QRect(300, 0, 200, 100))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(36)
font.setBold(True)
font.setWeight(75)
self.headind.setFont(font)
self.headind.setStyleSheet("background-color: rgb(255, 0, 4);\n"
"border-radius: 20")
self.headind.setObjectName("headind")
self.pic_p = QtWidgets.QFrame(Form)
self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.fio = QtWidgets.QLabel(Form)
self.fio.setGeometry(QtCore.QRect(200, 110, 400, 80))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.fio.setFont(font)
self.fio.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"border-radius: 20")
self.fio.setObjectName("fio")
self.pic_p = QtWidgets.QFrame(Form)
self.pic_p.setGeometry(QtCore.QRect(720, 0, 300, 400))
self.pic_p.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 150\n"
"\n"
"")
self.pic_p.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.pic_p.setFrameShadow(QtWidgets.QFrame.Raised)
self.pic_p.setObjectName("pic_p")
self.pB_main = QtWidgets.QPushButton(Form)
self.pB_main.setGeometry(QtCore.QRect(230, 410, 340, 80))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.pB_main.setFont(font)
self.pB_main.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.pB_main.setObjectName("pB_main")
self.pic_brain = QtWidgets.QLabel(Form)
self.pic_brain.setGeometry(QtCore.QRect(305, 190, 200, 190))
self.pic_brain.setText("")
self.pic_brain.setPixmap(QtGui.QPixmap("D:/флэшка/Расортированные/2.2 курс/Практика/Test-IQ/pictures/brain_PNG61.png"))
self.pic_brain.setScaledContents(False)
self.pic_brain.setObjectName("pic_brain")
self.result = QtWidgets.QLabel(Form)
self.result.setGeometry(QtCore.QRect(250, 180, 300, 200))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(100)
font.setBold(True)
font.setWeight(75)
self.result.setFont(font)
self.result.setStyleSheet("color: rgb(230, 0, 3);")
self.result.setAlignment(QtCore.Qt.AlignCenter)
self.result.setObjectName("result")
self.pB_wrong_answers = QtWidgets.QPushButton(Form)
self.pB_wrong_answers.setGeometry(QtCore.QRect(250, 510, 300, 60))
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(16)
font.setBold(True)
font.setWeight(75)
self.pB_wrong_answers.setFont(font)
self.pB_wrong_answers.setStyleSheet("background-color: rgb(191, 191, 191);\n"
"\n"
"border-radius: 30")
self.pB_wrong_answers.setObjectName("pB_wrong_answers")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.headind.setText(_translate("Form", "Test-IQ"))
self.pB_main.setText(_translate("Form", "меню"))
self.result.setText(_translate("Form", "121"))
self.pB_wrong_answers.setText(_translate("Form", "неверные ответы"))
# v
class Resultat(QMainWindow, resultv):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.parent = parent
self.result.setText(self.parent.mainWindow1.o1)
# v
class Registra(QMainWindow, registr):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.parent = parent
self.pB_test.clicked.connect(self.ex)
self.lineEdit_4.setInputMask("100")
# ? self.resultat = resultat(self.parent) # ---
def rr(self):
name = self.lineEdit.text()
family_name = self.lineEdit_2.text()
otchestvo = self.lineEdit_3.text()
age = self.lineEdit_4.text()
self.tracker = True
if name == "" or family_name == "" or otchestvo == "" or age == "":
QMessageBox.critical(self, 'Ошибка!', "Вы вели не все поля")
self.tracker = False
def ex(self):
print(self.parent.o1)
self.rr()
if self.tracker == True:
# self.resultat.show() # ---
self.parent.mainWindow1.resultat.show() # +++
self.hide()
else:
return
class MainWindow1(QMainWindow, Ui_Form1):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.parent = parent
self.O_11.clicked.connect(self.O11) # 46
self.O_21.clicked.connect(self.O21)
self.O_31.clicked.connect(self.O31)
self.O_41.clicked.connect(self.O41)
self.O_51.clicked.connect(self.O51) # 48
self.o1 = ""
# self.Registra = registra(self.parent) # ---
# v v
self.registra = Registra(self.parent) # +++
# ? self.resultat = resultat(self.parent) # ---
QtCore.QTimer.singleShot(10, self._resultat) # +++ !!!
def _resultat(self): # +++
# v
self.resultat = Resultat(self.parent) # +++
def O11(self):
self.parent.o1 = "0"
self.registra.show()
self.hide()
def O21(self):
self.parent.o1 = "0"
self.registra.show()
self.hide()
def O31(self):
self.parent.o1 = "0"
self.registra.show()
self.hide()
def O41(self):
self.parent.o1 = "0"
self.registra.show()
self.hide()
def O51(self):
self.parent.o1 = "1"
print(self.o1)
self.registra.show()
self.hide()
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.pB_test.clicked.connect(self.onMainWindow1)
# ? self.pB_doc.clicked.connect(self.funcDock)
self.mainWindow1 = MainWindow1(self)
# ? self.dock = Dock(self)
def onMainWindow1(self):
self.mainWindow1.show()
windows.hide()
def funcDock(self):
self.dock.show()
windows.hide()
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
startmenu_window = MainWindow()
windows = QStackedWidget()
windows.addWidget(startmenu_window)
windows.show()
sys.exit(app.exec_())
