Eu estou fazendo uma interface gráfica usando o modulo do python tkinter
, eu resolvi separar o meu “app” em dois arquivos diferentes, fazendo assim uma modularização.
O arquivo da interface gráfica (gui.py) pede algumas informações para serem preenchidas, como email
e senha
e logo abaixo temos um botão que chama a função enviar
que processa os dados. Ela envia a variável email
para a função verifica_email
onde eu faço uma verificação e retorno True
ou False
e logo após isso na função enviar
eu retorno no formato de uma tupla o email
e a senha
.
gui.py:
from tkinter import *
def informacoes():
global email_input
global senha_input
janela_login = Tk()
janela_login.title("Meu app")
janela_login.resizable(False, False)
titulo = Label(janela_login, text="Informações importantes.", font=("verdana", 10, "bold"))
titulo.place(x=161, y=33, anchor="center")
aviso = Label(janela_login, text="As informações aqui inseridas não são compartilhadas!", font=("verdana", 6, "bold"))
aviso.place(x=161, y=47, anchor="center")
#informações de login:
label_email = Label(janela_login, text="Digite o seu email da sua conta:")
label_email.place(x=161, y=106, anchor="center")
email_input = Entry(janela_login)
email_input.place(x=161, y=128, anchor="center")
label_senha = Label(janela_login, text="Digite a sua senha da sua conta:")
label_senha.place(x=161, y=151, anchor="center")
senha_input = Entry(janela_login, show="*")
senha_input.place(x=161, y=171, anchor="center")
confirmar = Button(janela_login, text="Iniciar Compra", command=lambda: enviar())
confirmar.place(x=161, y=259, anchor="center")
janela_login.mainloop()
def enviar():
email = str(email_input.get())
senha = str(senha_input.get())
ok1 = verifica_email(email)
if ok1 == True:
return (email, senha)
else:
erro('Algo deu errado!')
def verifica_email(email='padrao'):
if '@' in email:
return True
else:
print('O email passado aparentemente não existe!')
return False
Ai eu tenho o arquivo principal (main.py), que basicamente tem que pegar o valor retornado da função enviar
e armazenar dentro de uma variável.
main.py:
import gui
def main():
informacoes.informacoes() #chama a interface gráfica
retorno = informacoes.enviar() #salva o retorno da função enviar
print(retorno)
email = retorno(0)
senha = retorno(1)
print(email)
print(senha)
main()
Só que quando eu executo isso ele me retorna o seguinte erro: _tkinter.TclError: invalid command name ".!entry"
. Qual o problema e como eu resolvo?