Система оцениваний в опроснике
Есть текстовый файл, содержащий 10 вопросов, по три варианта ответа к каждому вопросу.
На первой строчке находятся ответы в таком формате:
1 1 1 2 3 1 1 1 1 3
где (1-А, 2-Б, 3-В).
В приложении есть окно, в которое выводится содержимое текстового файла (кроме первой строки с ответами), также в этом окне находятся 10 групп, состоящих из 3 кнопок (RadioButton
), то есть 30 кнопок, по три на каждый вопрос.
Как сделать сравнение ответов с первой строки текстового файла с нажатыми пользователем кнопками и вывести ответ по типу:
Правильно-7 из 10.
main.py
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog, QLabel
from newrules import Ui_Form as Ui_NewRules # + Ui_NewRules
from form import Ui_Form as Ui_OpenTest # + Ui_OpenTest
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(715, 639)
Form.setStyleSheet("background-color: rgb(16, 209, 235)")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(10, 10, 571, 621))
font = QtGui.QFont()
font.setPointSize(8)
self.label.setFont(font)
self.label.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"color: rgb(216, 209, 235);")
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(590, 540, 111, 91))
font = QtGui.QFont()
font.setPointSize(10)
self.pushButton.setFont(font)
self.pushButton.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"color: rgb(16, 209, 235);")
self.pushButton.setObjectName("pushButton")
self.layoutWidget = QtWidgets.QWidget(Form)
self.layoutWidget.setGeometry(QtCore.QRect(590, 90, 111, 41))
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.label_3 = QtWidgets.QLabel(self.layoutWidget)
self.label_3.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_3.setObjectName("label_3")
self.verticalLayout_2.addWidget(self.label_3)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.radioButton_4 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_4.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_4.setObjectName("radioButton_4")
self.horizontalLayout_2.addWidget(self.radioButton_4)
self.radioButton_5 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_5.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_5.setObjectName("radioButton_5")
self.horizontalLayout_2.addWidget(self.radioButton_5)
self.radioButton_6 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_6.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_6.setObjectName("radioButton_6")
self.horizontalLayout_2.addWidget(self.radioButton_6)
self.verticalLayout_2.addLayout(self.horizontalLayout_2)
self.layoutWidget_2 = QtWidgets.QWidget(Form)
self.layoutWidget_2.setGeometry(QtCore.QRect(590, 140, 111, 41))
self.layoutWidget_2.setObjectName("layoutWidget_2")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget_2)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.label_4 = QtWidgets.QLabel(self.layoutWidget_2)
self.label_4.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_4.setObjectName("label_4")
self.verticalLayout_3.addWidget(self.label_4)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.radioButton_7 = QtWidgets.QRadioButton(self.layoutWidget_2)
self.radioButton_7.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_7.setObjectName("radioButton_7")
self.horizontalLayout_3.addWidget(self.radioButton_7)
self.radioButton_8 = QtWidgets.QRadioButton(self.layoutWidget_2)
self.radioButton_8.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_8.setObjectName("radioButton_8")
self.horizontalLayout_3.addWidget(self.radioButton_8)
self.radioButton_9 = QtWidgets.QRadioButton(self.layoutWidget_2)
self.radioButton_9.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_9.setObjectName("radioButton_9")
self.horizontalLayout_3.addWidget(self.radioButton_9)
self.verticalLayout_3.addLayout(self.horizontalLayout_3)
self.layoutWidget_3 = QtWidgets.QWidget(Form)
self.layoutWidget_3.setGeometry(QtCore.QRect(590, 190, 111, 41))
self.layoutWidget_3.setObjectName("layoutWidget_3")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.layoutWidget_3)
self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.label_5 = QtWidgets.QLabel(self.layoutWidget_3)
self.label_5.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_5.setObjectName("label_5")
self.verticalLayout_4.addWidget(self.label_5)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.radioButton_10 = QtWidgets.QRadioButton(self.layoutWidget_3)
self.radioButton_10.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_10.setObjectName("radioButton_10")
self.horizontalLayout_4.addWidget(self.radioButton_10)
self.radioButton_11 = QtWidgets.QRadioButton(self.layoutWidget_3)
self.radioButton_11.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_11.setObjectName("radioButton_11")
self.horizontalLayout_4.addWidget(self.radioButton_11)
self.radioButton_12 = QtWidgets.QRadioButton(self.layoutWidget_3)
self.radioButton_12.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_12.setObjectName("radioButton_12")
self.horizontalLayout_4.addWidget(self.radioButton_12)
self.verticalLayout_4.addLayout(self.horizontalLayout_4)
self.layoutWidget_4 = QtWidgets.QWidget(Form)
self.layoutWidget_4.setGeometry(QtCore.QRect(590, 240, 111, 41))
self.layoutWidget_4.setObjectName("layoutWidget_4")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.layoutWidget_4)
self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.label_6 = QtWidgets.QLabel(self.layoutWidget_4)
self.label_6.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_6.setObjectName("label_6")
self.verticalLayout_5.addWidget(self.label_6)
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.radioButton_13 = QtWidgets.QRadioButton(self.layoutWidget_4)
self.radioButton_13.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_13.setObjectName("radioButton_13")
self.horizontalLayout_5.addWidget(self.radioButton_13)
self.radioButton_14 = QtWidgets.QRadioButton(self.layoutWidget_4)
self.radioButton_14.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_14.setObjectName("radioButton_14")
self.horizontalLayout_5.addWidget(self.radioButton_14)
self.radioButton_15 = QtWidgets.QRadioButton(self.layoutWidget_4)
self.radioButton_15.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_15.setObjectName("radioButton_15")
self.horizontalLayout_5.addWidget(self.radioButton_15)
self.verticalLayout_5.addLayout(self.horizontalLayout_5)
self.layoutWidget_5 = QtWidgets.QWidget(Form)
self.layoutWidget_5.setGeometry(QtCore.QRect(590, 290, 111, 41))
self.layoutWidget_5.setObjectName("layoutWidget_5")
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.layoutWidget_5)
self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.label_7 = QtWidgets.QLabel(self.layoutWidget_5)
self.label_7.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_7.setObjectName("label_7")
self.verticalLayout_6.addWidget(self.label_7)
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.radioButton_16 = QtWidgets.QRadioButton(self.layoutWidget_5)
self.radioButton_16.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_16.setObjectName("radioButton_16")
self.horizontalLayout_6.addWidget(self.radioButton_16)
self.radioButton_17 = QtWidgets.QRadioButton(self.layoutWidget_5)
self.radioButton_17.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_17.setObjectName("radioButton_17")
self.horizontalLayout_6.addWidget(self.radioButton_17)
self.radioButton_18 = QtWidgets.QRadioButton(self.layoutWidget_5)
self.radioButton_18.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_18.setObjectName("radioButton_18")
self.horizontalLayout_6.addWidget(self.radioButton_18)
self.verticalLayout_6.addLayout(self.horizontalLayout_6)
self.layoutWidget_6 = QtWidgets.QWidget(Form)
self.layoutWidget_6.setGeometry(QtCore.QRect(590, 340, 111, 41))
self.layoutWidget_6.setObjectName("layoutWidget_6")
self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.layoutWidget_6)
self.verticalLayout_7.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_7.setObjectName("verticalLayout_7")
self.label_8 = QtWidgets.QLabel(self.layoutWidget_6)
self.label_8.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_8.setObjectName("label_8")
self.verticalLayout_7.addWidget(self.label_8)
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
self.radioButton_19 = QtWidgets.QRadioButton(self.layoutWidget_6)
self.radioButton_19.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_19.setObjectName("radioButton_19")
self.horizontalLayout_7.addWidget(self.radioButton_19)
self.radioButton_20 = QtWidgets.QRadioButton(self.layoutWidget_6)
self.radioButton_20.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_20.setObjectName("radioButton_20")
self.horizontalLayout_7.addWidget(self.radioButton_20)
self.radioButton_21 = QtWidgets.QRadioButton(self.layoutWidget_6)
self.radioButton_21.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_21.setObjectName("radioButton_21")
self.horizontalLayout_7.addWidget(self.radioButton_21)
self.verticalLayout_7.addLayout(self.horizontalLayout_7)
self.layoutWidget_7 = QtWidgets.QWidget(Form)
self.layoutWidget_7.setGeometry(QtCore.QRect(590, 390, 111, 41))
self.layoutWidget_7.setObjectName("layoutWidget_7")
self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.layoutWidget_7)
self.verticalLayout_8.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_8.setObjectName("verticalLayout_8")
self.label_9 = QtWidgets.QLabel(self.layoutWidget_7)
self.label_9.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_9.setObjectName("label_9")
self.verticalLayout_8.addWidget(self.label_9)
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
self.radioButton_22 = QtWidgets.QRadioButton(self.layoutWidget_7)
self.radioButton_22.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_22.setObjectName("radioButton_22")
self.horizontalLayout_8.addWidget(self.radioButton_22)
self.radioButton_23 = QtWidgets.QRadioButton(self.layoutWidget_7)
self.radioButton_23.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_23.setObjectName("radioButton_23")
self.horizontalLayout_8.addWidget(self.radioButton_23)
self.radioButton_24 = QtWidgets.QRadioButton(self.layoutWidget_7)
self.radioButton_24.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_24.setObjectName("radioButton_24")
self.horizontalLayout_8.addWidget(self.radioButton_24)
self.verticalLayout_8.addLayout(self.horizontalLayout_8)
self.layoutWidget_8 = QtWidgets.QWidget(Form)
self.layoutWidget_8.setGeometry(QtCore.QRect(590, 440, 111, 41))
self.layoutWidget_8.setObjectName("layoutWidget_8")
self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.layoutWidget_8)
self.verticalLayout_9.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_9.setObjectName("verticalLayout_9")
self.label_10 = QtWidgets.QLabel(self.layoutWidget_8)
self.label_10.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_10.setObjectName("label_10")
self.verticalLayout_9.addWidget(self.label_10)
self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
self.horizontalLayout_9.setObjectName("horizontalLayout_9")
self.radioButton_25 = QtWidgets.QRadioButton(self.layoutWidget_8)
self.radioButton_25.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_25.setObjectName("radioButton_25")
self.horizontalLayout_9.addWidget(self.radioButton_25)
self.radioButton_26 = QtWidgets.QRadioButton(self.layoutWidget_8)
self.radioButton_26.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_26.setObjectName("radioButton_26")
self.horizontalLayout_9.addWidget(self.radioButton_26)
self.radioButton_27 = QtWidgets.QRadioButton(self.layoutWidget_8)
self.radioButton_27.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_27.setObjectName("radioButton_27")
self.horizontalLayout_9.addWidget(self.radioButton_27)
self.verticalLayout_9.addLayout(self.horizontalLayout_9)
self.layoutWidget_9 = QtWidgets.QWidget(Form)
self.layoutWidget_9.setGeometry(QtCore.QRect(590, 490, 111, 41))
self.layoutWidget_9.setObjectName("layoutWidget_9")
self.verticalLayout_10 = QtWidgets.QVBoxLayout(self.layoutWidget_9)
self.verticalLayout_10.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_10.setObjectName("verticalLayout_10")
self.label_11 = QtWidgets.QLabel(self.layoutWidget_9)
self.label_11.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_11.setObjectName("label_11")
self.verticalLayout_10.addWidget(self.label_11)
self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
self.horizontalLayout_10.setObjectName("horizontalLayout_10")
self.radioButton_28 = QtWidgets.QRadioButton(self.layoutWidget_9)
self.radioButton_28.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_28.setObjectName("radioButton_28")
self.horizontalLayout_10.addWidget(self.radioButton_28)
self.radioButton_29 = QtWidgets.QRadioButton(self.layoutWidget_9)
self.radioButton_29.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_29.setObjectName("radioButton_29")
self.horizontalLayout_10.addWidget(self.radioButton_29)
self.radioButton_30 = QtWidgets.QRadioButton(self.layoutWidget_9)
self.radioButton_30.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_30.setObjectName("radioButton_30")
self.horizontalLayout_10.addWidget(self.radioButton_30)
self.verticalLayout_10.addLayout(self.horizontalLayout_10)
self.widget = QtWidgets.QWidget(Form)
self.widget.setGeometry(QtCore.QRect(590, 40, 111, 41))
self.widget.setObjectName("widget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.label_2 = QtWidgets.QLabel(self.widget)
self.label_2.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_2.setObjectName("label_2")
self.verticalLayout.addWidget(self.label_2)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.radioButton = QtWidgets.QRadioButton(self.widget)
self.radioButton.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton.setObjectName("radioButton")
self.horizontalLayout.addWidget(self.radioButton)
self.radioButton_2 = QtWidgets.QRadioButton(self.widget)
self.radioButton_2.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_2.setObjectName("radioButton_2")
self.horizontalLayout.addWidget(self.radioButton_2)
self.radioButton_3 = QtWidgets.QRadioButton(self.widget)
self.radioButton_3.setStyleSheet("background-color: rgb(255, 255, 255);")
self.radioButton_3.setObjectName("radioButton_3")
self.horizontalLayout.addWidget(self.radioButton_3)
self.verticalLayout.addLayout(self.horizontalLayout)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "TextLabel"))
self.pushButton.setText(_translate("Form", "Завершить тест"))
self.label_3.setText(_translate("Form", "№2"))
self.radioButton_4.setText(_translate("Form", "А"))
self.radioButton_5.setText(_translate("Form", "Б"))
self.radioButton_6.setText(_translate("Form", "В"))
self.label_4.setText(_translate("Form", "№3"))
self.radioButton_7.setText(_translate("Form", "А"))
self.radioButton_8.setText(_translate("Form", "Б"))
self.radioButton_9.setText(_translate("Form", "В"))
self.label_5.setText(_translate("Form", "№4"))
self.radioButton_10.setText(_translate("Form", "А"))
self.radioButton_11.setText(_translate("Form", "Б"))
self.radioButton_12.setText(_translate("Form", "В"))
self.label_6.setText(_translate("Form", "№5"))
self.radioButton_13.setText(_translate("Form", "А"))
self.radioButton_14.setText(_translate("Form", "Б"))
self.radioButton_15.setText(_translate("Form", "В"))
self.label_7.setText(_translate("Form", "№6"))
self.radioButton_16.setText(_translate("Form", "А"))
self.radioButton_17.setText(_translate("Form", "Б"))
self.radioButton_18.setText(_translate("Form", "В"))
self.label_8.setText(_translate("Form", "№7"))
self.radioButton_19.setText(_translate("Form", "А"))
self.radioButton_20.setText(_translate("Form", "Б"))
self.radioButton_21.setText(_translate("Form", "В"))
self.label_9.setText(_translate("Form", "№8"))
self.radioButton_22.setText(_translate("Form", "А"))
self.radioButton_23.setText(_translate("Form", "Б"))
self.radioButton_24.setText(_translate("Form", "В"))
self.label_10.setText(_translate("Form", "№9"))
self.radioButton_25.setText(_translate("Form", "А"))
self.radioButton_26.setText(_translate("Form", "Б"))
self.radioButton_27.setText(_translate("Form", "В"))
self.label_11.setText(_translate("Form", "№10"))
self.radioButton_28.setText(_translate("Form", "А"))
self.radioButton_29.setText(_translate("Form", "Б"))
self.radioButton_30.setText(_translate("Form", "В"))
self.label_2.setText(_translate("Form", "№1"))
self.radioButton.setText(_translate("Form", "А"))
self.radioButton_2.setText(_translate("Form", "Б"))
self.radioButton_3.setText(_translate("Form", "В"))
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(763, 544)
MainWindow.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(18)
MainWindow.setFont(font)
MainWindow.setStyleSheet("background-color: rgb(16, 209, 235);\n"
"")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.layoutWidget = QtWidgets.QWidget(self.centralwidget)
self.layoutWidget.setGeometry(QtCore.QRect(30, 48, 711, 441))
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.text_zagolovok = QtWidgets.QTextBrowser(self.layoutWidget)
self.text_zagolovok.setMaximumSize(QtCore.QSize(16777215, 100))
self.text_zagolovok.setBaseSize(QtCore.QSize(0, 100))
self.text_zagolovok.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"color: rgb(16, 209, 235);")
self.text_zagolovok.setObjectName("text_zagolovok")
self.verticalLayout_3.addWidget(self.text_zagolovok)
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
class LastWindow(QtWidgets.QWidget, Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
class NewRules(QtWidgets.QWidget, Ui_NewRules):
def __init__(self):
super().__init__()
self.setupUi(self)
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.pushButton_3.clicked.connect(self.write_file)
self.pushButton_4.clicked.connect(self.start_test)
self.answers = None # +++
self.questions = None # +++
self.lastWindow = LastWindow() # +++
self.lastWindow.pushButton.clicked.connect(self.finish_test) # +++
self.rb_answers = { # +++
0: [self.lastWindow.radioButton,
self.lastWindow.radioButton_2,
self.lastWindow.radioButton_3],
1: [self.lastWindow.radioButton_4,
self.lastWindow.radioButton_5,
self.lastWindow.radioButton_6],
2: [self.lastWindow.radioButton_7,
self.lastWindow.radioButton_8,
self.lastWindow.radioButton_9],
3: [self.lastWindow.radioButton_10,
self.lastWindow.radioButton_11,
self.lastWindow.radioButton_12],
4: [self.lastWindow.radioButton_13,
self.lastWindow.radioButton_14,
self.lastWindow.radioButton_15],
5: [self.lastWindow.radioButton_16,
self.lastWindow.radioButton_17,
self.lastWindow.radioButton_18],
6: [self.lastWindow.radioButton_19,
self.lastWindow.radioButton_20,
self.lastWindow.radioButton_21],
7: [self.lastWindow.radioButton_22,
self.lastWindow.radioButton_23,
self.lastWindow.radioButton_24],
8: [self.lastWindow.radioButton_25,
self.lastWindow.radioButton_26,
self.lastWindow.radioButton_27],
9: [self.lastWindow.radioButton_28,
self.lastWindow.radioButton_29,
self.lastWindow.radioButton_30],
}
def write_file(self):
fileName, _ = QFileDialog.getOpenFileName(
self,
'Open File',
'',
'*.txt'
)
if not fileName:
msg = QtWidgets.QMessageBox.information(
self, 'Внимание', 'Добавте файл с тестом')
return
with open(fileName, "r", encoding='utf-8') as f:
self.answers = f.readline()
self.questions = f.readlines()
def start_test(self):
if self.answers is None:
msg = QtWidgets.QMessageBox.information(
None, 'Внимание', 'Добавте файл с тестом')
return
self.newRules = NewRules()
self.newRules.push_btn_starttest.clicked.connect(self.window4) # !!! +++
self.newRules.show()
self.hide()
def window4(self):
if self.questions is None:
msg = QtWidgets.QMessageBox.information(
self, 'Внимание', 'Добавте файл с тестом')
return
self.lastWindow.show()
self.newRules.hide()
self.lastWindow.label.clear()
self.lastWindow.label.setFont(QtGui.QFont('TimesNewRoman', 15))
for line in self.questions:
self.lastWindow.label.setText(self.lastWindow.label.text() + line)
def finish_test(self):
answers = self.answers.split()
# print(f'def finish_test(self): {answers}')
self.lastWindow.label.clear()
for i, q in enumerate(self.questions):
# print(f'question: {i+1} -- {q}')
answer = answers[i]
rbs = self.rb_answers[i]
rb_answer = '\tВы не отвечали на этот вопрос.\n'
for j, rb in enumerate(rbs):
if rb.isChecked():
if answer == str(j + 1):
rb_answer = '\tОтвет правильный.\n'
else:
rb_answer = '\tОтвет НЕ правильный.\n'
break
self.lastWindow.label.setText(
self.lastWindow.label.text() + q + rb_answer)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
Источник: Stack Overflow на русском