Resumo : neste tutorial, você aprenderá como usar o widget Tkinter Entry para criar uma caixa de texto.
Introdução ao widget Tkinter Entry
O Entry
widget permite inserir um texto de linha única. No Tkinter, para criar uma caixa de texto, você usa o Entry
widget:
textbox = ttk.Entry(master, **options)
Linguagem de código: Python ( python )
Nesta sintaxe:
- O é o quadro ou janela
master
pai . no qual você deseja colocar o widget. - É
options
um ou mais argumentos de palavra-chave usados para configurar oEntry
widget.
Observe que se quiser inserir texto com várias linhas, você pode usar o Text
widget.
Para obter o texto atual de um Entry
widget como uma string, você usa o get()
método:
textbox.get()
Linguagem de código: Python ( python )
Normalmente, você associa o valor atual da caixa de texto a um objeto StringVar como este:
text = tk.StringVar()
textbox = ttk.Entry(root, textvariable=text)
Linguagem de código: Python ( python )
Nesta sintaxe:
- Primeiro, crie uma nova instância da
StringVar
classe. O texto será o detentor do valor para uma variável string. - Segundo, atribua a variável de texto ao
textvariable
widgetEntry
.
Nesse caso, você pode chamar o get()
método do StringVar()
objeto para obter o valor atual do widget de entrada:
text.get()
Linguagem de código: CSS ( css )
Configurando o foco para o widget Tkinter Entry
Para fornecer uma melhor experiência ao usuário, você pode mover o foco para o primeiro Entry
widget após a janela aparecer. Assim que o Entry
widget estiver em foco, ele estará pronto para aceitar a entrada do usuário.
Para fazer isso, você usa o focus()
método do Entry
widget assim:
textbox.focus()
Linguagem de código: Python ( python )
Mostrando uma entrada de senha do Tkinter
Para ocultar informações confidenciais no Entry
widget, por exemplo, uma senha, você pode usar a show
opção.
O seguinte cria uma entrada de senha. Quando você insere uma senha, ela não mostra os caracteres reais, mas os asteriscos (*) especificados na show
opção:
password = tk.StringVar()
password_entry = ttk.Entry(
root,
textvariable=password,
show='*'
)
password_entry.pack()
Linguagem de código: Python ( python )
Exemplo de widget de entrada Tkinter
O programa a seguir mostra como usar os Entry
widgets para criar um formulário de login:
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showinfo
# root window
root = tk.Tk()
root.geometry("300x150")
root.resizable(False, False)
root.title('Sign In')
# store email address and password
email = tk.StringVar()
password = tk.StringVar()
def login_clicked():
""" callback when the login button clicked
"""
msg = f'You entered email: {email.get()} and password: {password.get()}'
showinfo(
title='Information',
message=msg
)
# Sign in frame
signin = ttk.Frame(root)
signin.pack(padx=10, pady=10, fill='x', expand=True)
# email
email_label = ttk.Label(signin, text="Email Address:")
email_label.pack(fill='x', expand=True)
email_entry = ttk.Entry(signin, textvariable=email)
email_entry.pack(fill='x', expand=True)
email_entry.focus()
# password
password_label = ttk.Label(signin, text="Password:")
password_label.pack(fill='x', expand=True)
password_entry = ttk.Entry(signin, textvariable=password, show="*")
password_entry.pack(fill='x', expand=True)
# login button
login_button = ttk.Button(signin, text="Login", command=login_clicked)
login_button.pack(fill='x', expand=True, pady=10)
root.mainloop()
Linguagem de código: Python ( python )
Saída:
Como funciona.
Primeiro, crie duas variáveis de string para armazenar o texto atual dos Entry
widgets de e-mail e senha:
# store email address and password
email = tk.StringVar()
password = tk.StringVar()
Linguagem de código: Python ( python )
Segundo, crie um Entry
widget de e-mail e associe-o à email
variável:
email_entry = ttk.Entry(signin, textvariable=email)
Linguagem de código: Python ( python )
Os seguintes conjuntos concentram-se na email
entrada:
email_entry.focus()
Linguagem de código: Python ( python )
Terceiro, crie o widget de entrada de senha e atribua a variável password ao seu textvariable
:
password_entry = ttk.Entry(signin, textvariable=password, show="*")
Linguagem de código: Python ( python )
Por fim, exiba uma caixa de mensagem que mostra o e-mail e a senha inseridos se o botão de login for clicado.
Resumo
- Use o
ttk.Entry
widget para criar uma caixa de texto. - Use uma instância da
StringVar()
classe para associar o texto atual doEntry
widget a uma variável de string. - Use a
show
opção para criar uma entrada de senha.