Entrada Tkinter

Resumo : neste tutorial, você aprenderá como usar o widget Tkinter Entry para criar uma caixa de texto.

Introdução ao widget Tkinter Entry

O Entrywidget permite inserir um texto de linha única. No Tkinter, para criar uma caixa de texto, você usa o Entrywidget:

textbox = ttk.Entry(master, **options)Linguagem de código:  Python  ( python )

Nesta sintaxe:

  • O é o quadro ou janelamaster pai . no qual você deseja colocar o widget.
  • É optionsum ou mais argumentos de palavra-chave usados ​​para configurar o Entrywidget.

Observe que se quiser inserir texto com várias linhas, você pode usar o Textwidget.

Para obter o texto atual de um Entrywidget 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 StringVarclasse. O texto será o detentor do valor para uma variável string.
  • Segundo, atribua a variável de texto ao textvariablewidget Entry.

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 Entrywidget após a janela aparecer. Assim que o Entrywidget estiver em foco, ele estará pronto para aceitar a entrada do usuário.

Para fazer isso, você usa o focus()método do Entrywidget assim:

textbox.focus()Linguagem de código:  Python  ( python )

Mostrando uma entrada de senha do Tkinter

Para ocultar informações confidenciais no Entrywidget, por exemplo, uma senha, você pode usar a showopçã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 showopçã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 Entrywidgets 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:

Exemplo de entrada Tkinter

Como funciona.

Primeiro, crie duas variáveis ​​de string para armazenar o texto atual dos Entrywidgets 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 Entrywidget de e-mail e associe-o à emailvariável:

email_entry = ttk.Entry(signin, textvariable=email)Linguagem de código:  Python  ( python )

Os seguintes conjuntos concentram-se na emailentrada:

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.Entrywidget para criar uma caixa de texto.
  • Use uma instância da StringVar()classe para associar o texto atual do Entrywidget a uma variável de string.
  • Use a showopção para criar uma entrada de senha.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *