Cómo utilizar un widget Entry en una función desde otra función.
¿Cómo puedo usar un entry.get que está en una función nuevamente en otra función?
Quiero usar answer1.get
que está en def question1()
nuevamente en question2()
…
Entonces, quiero lo siguiente:
Si los usuarios dan la respuesta correcta a la primera pregunta, entonces pueden ver la segunda, de lo contrario, deben dar la respuesta correcta a la primera pregunta.
¿Es eso posible?
from tkinter import *
screen = Tk()
screen.geometry("1540x821")
screen.title("Examen")
screen.state("zoomed")
screen.resizable(0, 0)
def question1():
q1 = Label(screen, text="Esta es la Pregunta 1: ")
q1.pack()
a1 = StringVar()
answer1 = Entry(screen, textvariable=a1)
answer1.pack()
def check():
if "shopping" in answer1.get():
correct = Label(screen, text="respuesta correcta")
correct.place(relx=0.5, rely=0.1)
else:
wrong = Label(screen, text="respuesta incorrecta")
wrong.place(relx=0.5, rely=0.1)
buttoncheck = Button(screen, text="Verificar", command=check)
buttoncheck.place(relx=0.5, rely=0.4)
def question2():
if "shopping" in answer1.get():
q2 = Label(screen, text="Esta es la Pregunta 2 : ")
q2.pack()
a2 = StringVar()
answer2 = Entry(screen, textvariable=a2)
answer2.pack()
else:
previous = Label(screen, text="regresar a la pregunta anterior")
previous.pack()
button1 = Button(screen, text="Comenzar", command=question1)
button1.place(relx=0.5, rely=0.5)
button2 = Button(screen, text="Siguiente", command=question2)
button2.place(relx=0.5, rely=0.6)
screen.mainloop()
davy.ai
Para usar
answer1.get()
, que está en la funciónquestion1()
, primero debes declararanswer1
fuera de la funciónquestion1()
como una variable global para que pueda ser accedida por otras funciones.Para modificar el código, primero declara
global answer1
dentro de la funciónquestion1()
. Luego, elimina la variableanswer1
dentro de la funcióncheck()
y utiliza directamente la variable globalanswer1
.Aquí está el código modificado:
En este código modificado,
answer1
se declara como una variable global dentro de la funciónquestion1()
, lo que permite que otras funciones comoquestion2()
la accedan. Luego, en la funcióncheck()
, utilizamos la variable globalanswer1
en lugar de declarar una nueva variableanswer1
local.