A função get do Tkinter Entry não produz nada: uma explicação abrangente
Ao tentar recuperar a entrada do usuário de um widget Tkinter Entry usando get() função, você poderá encontrar um valor de retorno vazio. Esse problema aparentemente desconcertante decorre da natureza assíncrona do Tkinter e da ordem de execução da função.
No trecho de código fornecido, você tenta recuperar o valor da entrada imediatamente após criá-la. No entanto, o Tkinter segue um modelo de "loop de eventos" onde os eventos da GUI são processados após a função mainloop() ser invocada. Isso significa que quando a função get() é chamada antes de mainloop(), nenhuma entrada do usuário foi inserida ainda, resultando em um valor de retorno vazio.
Para resolver esse problema, uma abordagem é chamar get() dentro de uma função separada vinculada a um evento, como um clique de botão. Um exemplo dessa abordagem baseada em classe é fornecido:
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()
Neste exemplo, a função get() é invocada dentro da função on_button, que está associada ao evento click de um botão. Quando o botão é clicado, o valor da entrada é recuperado e impresso, permitindo que você interaja efetivamente com a entrada do usuário.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3