Entrar ao pressionar enter

510 views
Skip to first unread message

apolion naujo

unread,
Nov 9, 2017, 10:29:04 AM11/9/17
to Python Brasil
Olá, estou com duas pequenas dúvidas, bom, fiz uma simples tela de login, e gostaria de melhorar a IHC, minha primeira dúvida é: quando usuário iniciar a aplicação ele terá que digitar o usuário e senha, bom quando o usuario digitar seu usuario gostaria que quando ele apertasse a tecla ENTER acontecesse a quebra de linha para ele digitar a senha, e depois que digitasse a senha e aperta Enter novamente, fosse para o botão Entrar. Segunda dúvida: quando o botão Entrar estiver selecionado e for apertado Enter no teclado ele fosse ativado o evento daquele botão.
segue o algorito que estou produzindo.
desde já agradeço.

from tkinter import*
from tkinter.messagebox import *

janela = Tk()
janela.title("TELA DE ACESSO")
janela.geometry("600x350+400+200")
janela.resizable(False, False)


logo = PhotoImage(file="imagens/logoAcesso.png")
label = Label(janela, image=logo)
label.pack(side=RIGHT, padx=2, pady=4)



def quit():
janela.destroy()


def entrar():
log = str(ent1.get())

se = str(ent2.get())
if log == "admin" and se == "admin":

quit()
tela_Principal.janela_p()



else:
showinfo(title="Login", message="ACESSO NEGADO")


corFundo = "White"
corLetra = "#4682B4"



lbt = Label(janela, text="GeComerce", bg=corFundo, fg=corLetra, font=("Verdana", 30))
lbt.place(x=180, y=5)
designby= Label(janela, text="Desenvolvido por: 4uTecnologia")
designby.place(x=170, y=330)


ent1 = Entry(janela)
ent1.focus()
ent1.place(x=105, y=105)


ent2 = Entry(janela, show="*")
ent2.place(x=105, y=145)

lblog = Label(janela, text="Login:", bg=corFundo, fg=corLetra,font=("Verdana", 15))
lblog.place(x=30, y=100)

lbsenha = Label(janela, text="Senha:", bg=corFundo, fg=corLetra, font=("Verdana", 15))
lbsenha.place(x=30, y=140)

bt = Button(janela, text="Entrar", bg="White", fg="#4682B4", command=entrar)
bt.place(x=130, y=190)



janela.configure(background=corFundo)
janela.mainloop()

SleX Luthor

unread,
Nov 9, 2017, 1:32:34 PM11/9/17
to Python Brasil
Sequinte Apolion.
Basta vc interceptar o evento KeyPress dos elementos e fazer a condição caso a tecla precionada seja o enter = "\r"


Seque o codigo com a implementacao
from tkinter import *
ent1.bind("<KeyPress>", lambda e: ent2.focus() if e.char == '\r' else None)  # <-- AQUI



ent2 = Entry(janela, show="*")
ent2.place(x=105, y=145)
ent2.bind("<KeyPress>", lambda e: entrar() if e.char == '\r' else None)  # <-- AQUI



lblog = Label(janela, text="Login:", bg=corFundo, fg=corLetra,font=("Verdana", 15))
lblog.place(x=30, y=100)

lbsenha = Label(janela, text="Senha:", bg=corFundo, fg=corLetra, font=("Verdana", 15))
lbsenha.place(x=30, y=140)

bt = Button(janela, text="Entrar", bg="White", fg="#4682B4", command=entrar)
bt.place(x=130, y=190)
bt.bind("<KeyPress>", lambda e: entrar() if e.char == '\r' else None)  # <-- AQUI


janela.configure(background=corFundo)
janela.mainloop()
Reply all
Reply to author
Forward
0 new messages