La función get de Tkinter Entry no produce nada: una explicación completa
Al intentar recuperar la entrada del usuario desde un widget de Tkinter Entry usando get() función, es posible que encuentre un valor de retorno vacío. Este problema aparentemente desconcertante surge de la naturaleza asincrónica de Tkinter y el orden de ejecución de la función.
En el fragmento de código proporcionado, intenta recuperar el valor de la Entrada inmediatamente después de crearla. Sin embargo, Tkinter sigue un modelo de "bucle de eventos" donde los eventos de la GUI se procesan después de invocar la función mainloop(). Esto significa que cuando se llama a la función get() antes de mainloop(), aún no se ha ingresado ninguna entrada del usuario, lo que genera un valor de retorno vacío.
Para resolver este problema, un método es llamar a get() dentro de una función separada vinculada a un evento, como un clic en un botón. Se proporciona un ejemplo de un enfoque basado en clases:
import tkinter as tk
class SampleApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.entry = tk.Entry(self)
self.button = tk.Button(self, text="Get", command=self.on_button)
self.button.pack()
self.entry.pack()
def on_button(self):
print(self.entry.get())
app = SampleApp()
app.mainloop()
En este ejemplo, la función get() se invoca dentro de la función on_button, que está asociada con el evento de clic de un botón. Cuando se hace clic en el botón, el valor de la Entrada se recupera e imprime, lo que le permite interactuar con la entrada del usuario de manera efectiva.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3