Reputation: 19
My code is following:
class makequestions(QMainWindow):
def __init__(self):
super(makequestions, self).__init__()
uic.loadUi("Addquestions.ui", self)
self.button= self.findChild(QPushButton, "pushButton")
self.table= self.findChild(QTableWidget, "tableWidget")
self.button.clicked.connect(self.data_collection)
self.show()
def data_collection(self):
zeze=self.table.item(0,0).text()
zeon=self.table.item(0,1).text()
zetw=self.table.item(0,2).text()
zeth=self.table.item(0,3).text()
zefo=self.table.item(0,4).text()
zefi=self.table.item(0,5).text()
onze=self.table.item(1,0).text()
onon=self.table.item(1,1).text()
ontw=self.table.item(1,2).text()
onth=self.table.item(1,3).text()
onfo=self.table.item(1,4).text()
onfi=self.table.item(1,5).text()
twze=self.table.item(2,0).text()
twon=self.table.item(2,1).text()
twtw=self.table.item(2,2).text()
twth=self.table.item(2,3).text()
twfo=self.table.item(2,4).text()
twfi=self.table.item(2,5).text()
thze=self.table.item(3,0).text()
thon=self.table.item(3,1).text()
thtw=self.table.item(3,2).text()
thth=self.table.item(3,3).text()
thfo=self.table.item(3,4).text()
thfi=self.table.item(3,5).text()
foze=self.table.item(4,0).text()
foon=self.table.item(4,1).text()
fotw=self.table.item(4,2).text()
foth=self.table.item(4,3).text()
fofo=self.table.item(4,4).text()
fofi=self.table.item(4,5).text()
fize=self.table.item(5,0).text()
fion=self.table.item(5,1).text()
fitw=self.table.item(5,2).text()
fith=self.table.item(5,3).text()
fifo=self.table.item(5,4).text()
fifi=self.table.item(5,5).text()
size=self.table.item(6,0).text()
sion=self.table.item(6,1).text()
sitw=self.table.item(6,2).text()
sith=self.table.item(6,3).text()
sifo=self.table.item(6,4).text()
sifi=self.table.item(6,5).text()
seze=self.table.item(7,0).text()
seon=self.table.item(7,1).text()
setw=self.table.item(7,2).text()
seth=self.table.item(7,3).text()
sefo=self.table.item(7,4).text()
sefi=self.table.item(7,5).text()
eize=self.table.item(8,0).text()
eion=self.table.item(8,1).text()
eitw=self.table.item(8,2).text()
eith=self.table.item(8,3).text()
eifo=self.table.item(8,4).text()
eifi=self.table.item(8,5).text()
nize=self.table.item(9,0).text()
nion=self.table.item(9,1).text()
nitw=self.table.item(9,2).text()
nith=self.table.item(9,3).text()
nifo=self.table.item(9,4).text()
nifi=self.table.item(9,5).text()
self.questions = pd.DataFrame({
'Question': [zeze,onze ,twze ,thze ,foze ,fize ,size ,seze ,eize ,nize],
'Option1': [zeon,onon ,twon ,thon ,foon ,fion ,sion ,seon ,eion ,nion],
'Option2': [zetw,ontw ,twtw ,thtw ,fotw ,fitw ,sitw ,setw ,eitw ,nitw],
'Option3': [zeth,onth ,twth ,thth ,foth ,fith ,sith ,seth ,eith ,nith],
'Option4': [zefo,onfo ,twfo ,thfo ,fofo ,fifo ,sifo ,sefo ,eifo ,nifo],
'Correct Answer': [zefi,onfi ,twfi ,thfi ,fofi ,fifi ,sifi ,sefi ,eifi ,nifi]
})
teacherquestions.close()
teacherquiz.show()
m = makequestions()
choosefrom = []
for i in range(1, 101):
choosefrom.append(["t", i])
random_name = random.choice(choosefrom)
frame = m.questions
When I run this code I get the error:
File "c:\Users\santh\OneDrive\Documents\PyQt5\yeah - Copy.py", line 481, in frame=m.questions AttributeError: 'makequestions' object has no attribute 'questions'
Edit: I tried applying what @buzz8year advised, - declaring questions
class property, - it works but it ends up taking the value of questions as None
instead of the value that i assign it later on.
Upvotes: 1
Views: 56
Reputation: 416
Error clearly says AttributeError: 'makequestions' object has no attribute 'questions'
. You need to add/declare property questions in your class __init__
method, smth like:
class MakeQuestions(QMainWindow):
def __init__(self):
self.questions = None
super(MakeQuestions, self).__init__()
...
Edit: You have applied property declaration and it solved your issue. Your next issue is that you get None
value of questions
property. It is so, because obviously your attempt to reassign self.questions = pd.DataFrame(...)
within data_collection()
method did not work. So, your next step is to carefully examine what is happening in that DataFrame()
of pd
class, which is also never been declared (at least, I do not see its declaration anywhere in your code).
Upvotes: 1