Ошибка 'function' object has no attribute 'quest'
class Question():
def __init__(self, q, ra, w1, w2, w3):
self.quest = q
self.r_Ans = ra
self.wg1 = w1
self.wg2 = w2
self.wg3 = w3
q1 = Question('Что значит Z',
'Za Россию',
'Чеzо',
'Zелибоба',
'ZАRKAF')
q2 = Question('Что значит АБАЮДНА',
'Крутой прикол хахахах',
'я придумал',
'Название фильма',
'Чай')
q3 = Question('Чему равер Mc²',
'Исполнитель музыки',
'Исполнитель школы',
'Гений, миллионер, плейбой',
'Абоба')
q = [q1, q2, q3]
def nq():
#if win.number < len(q)-1:
#nextq = q[win.number+1]
#win.number += 1
#else:
#win.number = 0
#nextq = q[win.number+1]
while True:
r = randint(0, len(q)-1)
if r != win.number:
win.number = r
break
nextq = q[r]
return nextq
def cof():
if btn.text() == 'Ответить':
show_ans()
else:
show_quest()
def show_ans():
win.total += 1
checkAns()
stat.setText(f'Статистика {round(win.score/win.total*100, 2)}%')
rAns.setText(q.rAns)
grBox.hide()
ansBox.show()
btn.setText('Далее')
def show_quest():
ask(next_quest)
grBox.show()
ansBox.hide()
btn.setText('Ответить')
def ask(arg):
quest.setText(arg.quest)
shuffle(rbtnl)
rbtnl[0].setText(arg.rAns)
rbtnl[1].setText(arg.wg1)
rbtnl[2].setText(arg.wg2)
rbtnl[3].setText(arg.wg3)
def checkAns():
for r in rbtnl:
if r.isChecked():
if r.text() == q.rAns:
reslb.setText('Верно!')
win.score += 1
else:
resLabel.setText('Ошибка!')
cleanButton()
def cleanButton():
rg.setExclusive(False)
rbtn1.setChecked(False)
rbtn2.setChecked(False)
rbtn3.setChecked(False)
rbtn4.setChecked(False)
rg.setExclusive(True)
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (
QApplication,
QWidget,
QLabel,
QVBoxLayout,
QHBoxLayout,
QRadioButton,
QGroupBox,
QPushButton,
QButtonGroup)
from random import shuffle, randint
from PyQt5.QtGui import QFont
app = QApplication([])
win = QWidget()
win.number = 0
win.total = 0
win.score = 0
win.setWindowTitle('yy')
win.resize(600, 400)
quest = QLabel('Что такое ПК?')
quest.setFont(QFont('Times', 16, QFont.Bold))
rbtn1 = QRadioButton('Портативный ноутбук')
rbtn1.setFont(QFont('Times', 14))
rbtn2 = QRadioButton('Помогать круто')
rbtn2.setFont(QFont('Times', 14))
rbtn3 = QRadioButton('Пожарный Кран')
rbtn3.setFont(QFont('Times', 14))
rbtn4 = QRadioButton('Подумай красный')
rbtn4.setFont(QFont('Times', 14))
rg = QButtonGroup()
rg.addButton(rbtn1)
rg.addButton(rbtn2)
rg.addButton(rbtn3)
rg.addButton(rbtn4)
rbtnl = [rbtn1, rbtn2, rbtn3, rbtn4]
btn = QPushButton('Ответить')
line1 = QHBoxLayout()
line1.addWidget(quest, alignment=Qt.AlignCenter)
#Группа вопроса
grBox = QGroupBox('Выберете правильный ответ')
ll = QVBoxLayout()
rl = QVBoxLayout()
hl = QHBoxLayout()
ll.addWidget(rbtn1)
ll.addWidget(rbtn3)
rl.addWidget(rbtn2)
rl.addWidget(rbtn4)
hl.addLayout(ll)
hl.addLayout(rl)
grBox.setLayout(hl)
#Группа ответа
ansBox = QGroupBox('Результат')
reslb = QLabel('Zov')
rAns = QLabel('zzz')
stat = QLabel('Статистика')
ansL = QVBoxLayout()
ansL.addWidget(reslb, alignment=Qt.AlignLeft)
ansL.addWidget(rAns, alignment=Qt.AlignCenter)
ansL.addWidget(stat, alignment=Qt.AlignRight)
ansBox.setLayout(ansL)
#---------------------------------------------------
line3 = QHBoxLayout()
line3.addWidget(btn, alignment=Qt.AlignCenter)
mainL = QVBoxLayout()
mainL.addLayout(line1)
mainL.addWidget(grBox)
mainL.addWidget(ansBox)
mainL.addLayout(line3)
win.setLayout(mainL)
grBox.show()
ansBox.hide()
btn.clicked.connect(cof)
win.show()
ask(nq)
app.exec()
Ошибка:
ask(nq)
ask(nq)
File "c:/Program Files/Algoritmika/vscode/data/extensions/algoritmika.algopython-20241014.142810.0/data/student/2765614/86844/my_memory_card.py", line 63, in ask
quest.setText(arg.quest)
AttributeError: 'function' object has no attribute 'quest'