AttributeError: 'int' object n'a pas d'attribut de 'get'
Voici le 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()
C'est la fonction utilisée avec le bouton soumettre:
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)
Et c'est l'erreur que j'obtiens quand je clique sur le 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'
Je suis en train de faire un jeu de quiz où je reçois une entrée de l'utilisateur à l'aide de la AnswerEntry Entrée de la boîte, mais il me dit que l'objet n'a pas d'attribut obtenir, s'il vous plaît aider!
- Est
AnswerEntry
mondiale? Vous n'avez pas le déclarer comme tel dansStartGame()
. - J'ai défini à l'extérieur de la fonction, mais je n'ai pas mis de "global AnswerEntry" n'importe où...
- Bon j'ai mis AnswerEntry comme une variable globale, et cela a fonctionné, merci Martijn!
Vous devez vous connecter pour publier un commentaire.
Si vous pensez que le
AnswerEntry = Entry(root)
ligne pour affecter un nom global défini à l'extérieur de la fonction, vous devez déclarer un mondial à l'intérieur de votreStartGame()
fonction:Affectation à une variable dans une fonction, que le nom de la variable locale à la fonction. Il semble que vous avez attribué une valeur entière pour le mondial
AnswerEntry
ailleurs, alorssubmit_answer()
voit que lorsque vous appelezAnswerEntry.get()
.Vous devriez vraiment éviter globals bien.
Entry
d'autres fois...AnswerEntry
est un intenger et non pas un objet, de sorte que vous ne pouvez pas appeler cette méthode sur lui.Peut-être que vous êtes absent instance de l'objet?