Aquí está el código:

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()

Esta es la función que se utiliza con el botón enviar:

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)

Y este es el error que tengo cuando hago clic en el 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'

Estoy tratando de hacer un juego de preguntas donde puedo conseguir una entrada del usuario mediante el AnswerEntry cuadro de Entrada, sin embargo, me está diciendo que el objeto no tiene ningún atributo de conseguir, por favor ayuda!

  • Es AnswerEntry un mundial? No se declara como tal en StartGame().
  • He definido fuera de la función, pero no se han puesto «global AnswerEntry» en cualquier lugar…
  • Bueno me puse AnswerEntry como una variable global y funcionó, gracias Martijn!
InformationsquelleAutor Annie Royal | 2013-02-08

2 Comentarios

  1. 1

    Si se espera que la AnswerEntry = Entry(root) línea de afectar a un nombre global definida fuera de la función, es necesario declarar un mundial dentro de su StartGame() función:

    global AnswerEntry
    AnswerEntry = Entry(root)

    Asignación a una variable en una función que hace que el nombre de la variable local a la función solo. Parece que usted le asigna un valor entero para el mundial AnswerEntry en otros lugares, por lo que submit_answer() ve que cuando llame AnswerEntry.get().

    Usted realmente debe evitar globales, aunque.

    • +1. Y usted debe de definitivamente evitar la reutilización de variables globales a la media de un número entero, a veces, un Entry otras veces…
  2. 0

    AnswerEntry es un intenger y no un objeto, de modo que usted no puede llamar a ese método en él.

    Tal vez te estás perdiendo instancia de objeto?

Dejar respuesta

Please enter your comment!
Please enter your name here