Here is the code:
def StartGame():
root = Tk()
root.title("Maths Quiz - Trigonometry and Pythagoras' Theorem | Start The Game")
root.geometry("640x480")
root.configure(background = "gray92")
TotScore = 0
Count = 0
while Count < 10:
AnswerReply = None
WorkingArea = Text(root, width = 70, height = 10, wrap = WORD).place(x = 38, y = 100)
n = GetRandomNumber
Question,RealAnswer = QuestionLibrary(Opposite,Adjacent,Hypotenuse,Angle,n)
AskQuestion = Label(root, text = Question).place(x = 38, y = 300)
PauseButton = ttk.Button(root, text = "Pause").place(x = 380, y = 10)
HelpButton = ttk.Button(root, text = "Help", command = helpbutton_click).place(x = 460, y = 10)
QuitButton = ttk.Button(root, text = "Quit", command = root.destroy).place(x = 540, y = 10)
AnswerEntry = Entry(root)
AnswerEntry.place(x = 252, y = 375)
SubmitButton = ttk.Button(root, text = "Submit", command = submit_answer).place(x = 276, y = 400)
Count += 1
root.mainloop()
This is the function used with the submit button:
def submit_answer():
Answer = AnswerEntry.get()
print(Answer)
TotScore,AnswerReply = IsAnswerCorrect(Answer,RealAnswer)
ScoreLabel = ttk.Label(root, text = TotScore).place(x = 10, y = 10)
AnswerReplyLabel = ttk.Label(root, text = AnswerReply).place(x = 295, y = 440)
And this is the error I get when I click on the SubmitButton
Traceback (most recent call last):
File "C:\Python32\lib\tkinter\__init__.py", line 1399, in __call__
return self.func(*args)
File "C:\Users\ANNIE\Documents\School\Computing\Project\Python\GUI Maths Quiz.py", line 178, in submit_answer
Answer = AnswerEntry.get()
AttributeError: 'int' object has no attribute 'get'
I’m trying to make a quiz game where I get an input from the user using the AnswerEntry Entry box, however it is telling me that the object has no attribute get, please help!
If you expect the
AnswerEntry = Entry(root)line to affect a global name defined outside of the function, you need to declare it a global inside of yourStartGame()function:Assignment to a variable in a function makes that variable name local to the function only. It appears you assigned an integer value to the global
AnswerEntryelsewhere, sosubmit_answer()sees that when you callAnswerEntry.get().You should really avoid globals though.