Olá a todos, sejam bem vindos de volta ao canal, sou João Futi, e continuando nosso tutorial no Tkinter, aqui faremos nosso quarto aplicativo que será a tela de login. E também desenvolveremos uma lógica simples para isso.

Este será um bom projeto para praticarmos o Tkinter e não apenas para praticarmos Python, construindo algo um pouco mais complexo.

Aqui está a funcionalidade do nosso projeto:

Em seguida, iniciaremos a construção do nosso projeto.

Começaremos construindo o design principal do aplicativo que será.

Crie um novo arquivo e comece importando o Tkinter dentro desse mesmo arquivo e crie uma janela simples conforme mostrado no código abaixo.

from tkinter import*
from tkinter import Tk, ttk

# cores -----------------------------

co0 = "#f0f3f5" # Preta
co1 = "#feffff" # branca
co2 = "#3fb5a3" # verde
co3 = "#38576b" # valor
co4 = "#403d3d" # letra

# criando janela --------------------

janela = Tk ()
janela.title ("")
janela.geometry('310x300')
janela.configure(background=co1)
janela.resizable(width=FALSE, height=FALSE)

janela.mainloop()


Agora vamos dividir nossa tela em dois quadros, então teremos o seguinte:

################# Frames ####################

frame_cima = Frame(janela,width=310, height=50,bg=co1, relief="flat")
frame_cima.grid(row=0, column=0,pady=1, padx=0, sticky=NSEW)
frame_baixo = Frame(janela,width=310, height=300,bg=co1, relief="flat")
frame_baixo.grid(row=1, column=0,pady=1, padx=0, sticky=NSEW)

 

Agora vamos criar alguns rótulos e entrada dentro do quadro superior que definirá o nome do aplicativo e também uma linha para estilizar nossa tela, então teremos o seguinte:

# configurando frame_cima

l_nome = Label(frame_cima, text="LOGIN", height=1,anchor=NE, font=('Ivy 25 '), bg=co1, fg=co4)
l_nome.place(x=5, y=5)

l_linha = Label(frame_cima,width=275, text="", height=1,anchor=NW, font=('Ivy 1 '), bg=co2)
l_linha.place(x=10, y=45)

 

Agora vamos criar também alguns rótulos e entradas dentro do frame inferior, que vão receber o nome e a senha que o usuário vai inserir, assim como o botão, então teremos o seguinte:

# configurando frame_baixo ---------------------------

l_nome = Label(frame_baixo, text="Nome *", height=1,anchor=NW, font=('Ivy 10 bold'), bg=co1, fg=co4)
l_nome.place(x=10, y=20)
e_nome = Entry(frame_baixo, width=25, justify='left',font=("",15),highlightthickness=1, relief="solid")
e_nome.place(x=14, y=50)

l_pass = Label(frame_baixo, text="password *", height=1,anchor=NW, font=('Ivy 10 bold'), bg=co1, fg=co4)
l_pass.place(x=10, y=95)
e_pass = Entry(frame_baixo,show='*',width=25, justify='left',font=("",15),highlightthickness=1,relief="solid")
e_pass.place(x=15, y=130)

botao_confirmar = Button(frame_baixo, text="Entrar", width=39, height=2, bg=co2, fg=co1, font=('Ivy 8 bold'), relief=RAISED, overrelief=RIDGE)
botao_confirmar.place(x=15, y=180)

 

Agora iremos criar uma função que irá verificar ou melhor onde teremos a lógica do nosso programa.

def verificar_senha():
nome = e_nome.get()
senha = str(e_pass.get())

if nome=='admin' and senha=='admin':
messagebox.showinfo('Login',' Seja bem vindo Admin !!!')

# verificando os dados para permitir o login do usuario
elif credenciais[0] == nome and credenciais[1] == senha:
messagebox.showinfo('Login',' Seja bem vindo de volta '+credenciais[0])
else:
messagebox.showwarning('Erro', 'Verifique o nome de usuario ou a palavra passe')

 

Agora vamos conectar esta função com o botão Enter, então temos o seguinte:

botao_confirmar = Button(frame_baixo, command=verificar_senha, text="Entrar", width=39, height=2, bg=co2, fg=co1, font=('Ivy 8 bold'), relief=RAISED, overrelief=RIDGE)
botao_confirmar.place(x=15, y=180)

 

Agora que nosso aplicativo está funcional, vamos criar mais uma nova função e nesta função vamos criar novos rótulos que serão apresentados no quadro inferior e superior.

def nova_janela():
l_nome = Label(frame_cima, text="Usuario: " + credenciais[0], height=1,anchor=NE, font=('Ivy 20 '), bg=co1, fg=co4)
l_nome.place(x=5, y=5)

l_linha = Label(frame_cima,width=275, text="", height=1,anchor=NW, font=('Ivy 1 '), bg=co2)
l_linha.place(x=10, y=45)

l_nome = Label(frame_baixo, text="Seja bem vindo " + credenciais[0], height=1,anchor=NE, font=('Ivy 15 '), bg=co1, fg=co4)
l_nome.place(x=5, y=105)

 

E, finalmente, a função de verificação será semelhante a esta:

def verificar_senha():
nome = e_nome.get()
senha = str(e_pass.get())

if nome=='admin' and senha=='admin':
messagebox.showinfo('Login',' Seja bem vindo Admin !!!')

# verificando os dados para permitir o login do usuario
elif credenciais[0] == nome and credenciais[1] == senha:
messagebox.showinfo('Login',' Seja bem vindo de volta '+credenciais[0])

# apagar o que tiver no frame baixo e cima
for widget in frame_baixo.winfo_children():
widget.destroy()

for widget in frame_cima.winfo_children():
widget.destroy()

# chamr nova janela
nova_janela()
else:
messagebox.showwarning('Erro', 'Verifique o nome de usuario ou a palavra passe')

 

Ok, chegamos ao final de nosso tutorial, você pode aumentar novos recursos no aplicativo, bem como reutilizá-los para seus projetos, e não se esqueça que o que estamos fazendo serve principalmente para nos deixar confortáveis trabalhando com Python , e também serve para nos familiarizarmos com os processos de criação de software.

Ficaremos aqui por hoje, eu sou o João e esse é o anal usando Python, vejo vocês no próximo vídeo, fui.