Entry
ent = tk.Entry(parent, opcao=valor, ...)
Cria uma caixa de texto de uma só linha numa janela ou numa frame, ‘parent’.
O construtor retorna o objeto Entry.
Definições:
Todos os carateres do texto do componente têm um índice que indica a sua posição e que começa em 0.
A constante tk.END indica a posição após o texto.
A constante tk.INSERT indica a posição corrente do cursor de inserção.
A constante tk.ANCHOR indica o primeiro caratere de uma seleção.
Atributos
Opção | Descrição |
---|---|
bd ou borderwidth | Espessura do bordo à volta da caixa de texto. Valor de defeito: 2 pixeis. |
bg ou background | Cor de fundo. |
cursor | Nome do cursor a ser mostrado quando o rato está sobre a caixa de texto. |
disabledforeground | Cor de texto usado quando a caixa de texto estiver desabilitado. |
exportselection | Por defeito, qualquer seleção do texto de uma caixa de texto é automáticamente exportada para o clipboard. Para evitar esta exportação, fazer exportselection=0. |
font | Fonte do texto. |
fg ou foreground | Cor de texto. |
font | Nome da fonte do texto da caixa de texto. |
highlightbackground | Cor do foco quando a caixa de texto nao tem o foco. |
highlightcolor | Cor do foco quando a caixa de texto tem o foco. |
highlightthickness | Espessura do foco. |
insertbackground | Por defeito, o cursor de inserção de texto é preto. Para usar outra côr no cursor de inserção, usar esta propriedade. |
insertborderwidth | Por defeito, o cursor de inserção é um rectângulo. Para obter o efeito 3D com tk.RAISED, usar insertborderwidth com a dimensão do rebordo 3D ( a opção insertwidth deve ser duas vezes esse valor). |
insertofftime | Por defeito, o cursor de inserção pisca. Esta propriedade está off durante 300 milisegundos. Esta propriedade permite alterar esse valor. insertofftime = 0 e o cursor deixa de piscar. |
insertontime | Por defeito, o cursor de inserção pisca. Esta propriedade está on durante 600 milisegundos. Esta propriedade permite alterar esse valor. |
insertwidth | Espessura do cursor de inserção. Valor de defeito é 2 pixeis. |
justify | Justificação de multiplas linhas: tk.LEFT, tk.CENTER ou tk.RIGHT. |
readonlybackground | Cor de fundo quando a opção state é igual a readonly |
relief | Tipo de relevo da caixa de texto. Valor de defeito: tk.RAISED. |
selectbackground | Cor de fundo escolhida para texto selecionado. |
selectborderwidth | Espessura do rebordo à volta do texto selecionado. |
selectforeground | Cor do texto selecionado. |
show | Normalmente, os caracteres escritos pelo utilizador aparecem na caixa de texto. Para fazer uma caixa de texto para recolha de passwords pode fazer com que os caracteres escritos apareçam como ‘*’, por exemplo. Para isso basta fazer show=’*’. |
state | Valor tk.DISABLED torna a caixa de texto irresponsiva não se podendo escrever nada nela. Retorna tk.ACTIVE quando o rato está sobre a caixa de texto. Valor tk.NORMAL é o valor de defeito que permite entrada de texto. ‘disabled’ é como tk.DISABLED mas permite seleção de texto. |
takefocus | Se igual a zero a caixa de texto não receberá o foco a partir do teclado. |
text | Texto da caixa de texto. |
textvariable | Para poder obter o texto da caixa de texto deve atribuir a esta opção uma instância de StringVar. Sendo txt uma instância de StringVar, pode ober o texto usando txt.get(); para escrever texto na caixa de texto deve fazer txt.set(). |
validate | Pode usar esta opção para validar o conteúdo da caixa de texto. |
validatecommand | Função de callback que valida o conteúdo da caixa de texto. |
width | Largura da caixa de texto em carateres (para botão com text). O valor de defeito é 20. |
xscrollcommand | Liga a caixa de texto a uma barra de rolamento (scrollbar). |
Métodos
.delete(first, last=None) : Apaga carateres da caixa de texto começando no índice first até ao caratere com o índice last, exclusive. Se o argumento last fôr omitido só é apagado o caratere na posição first.
.get() : obtém o texto da caixa de texto.
.icursor(indice) : coloca o cursor de inserção no caratere antes da posição indice.
.index(indice) : desloca o texto de forma a que o primeiro caratere à esquerda seja o caratere na posição indice.
.insert(indice, str) : insere a string str antes do caratere na posição indice.
.select_adjust(indice) : faz a seleção incluir o caratere na posição indice. Se a seleção não incluir o caratere é expandida para incluir o caratere na posição indice
.select_clear() : limpa a seleção.
.select_from(indice) : seleciona o caratere na posição indice.
.insert(indice, str) : insere a string str antes do caratere na posição indice.
.select_present() : retorna True se houve uma seleção presente; caso contrário retorna False.
.select_range(inicio, fim) : seleciona o texto desde o índice inicio até ao índice fim, exclusive. Para selecionar o texto todo, de fazer .select_range(0, tk.END)
.select_to(indice) : seleciona o texto da posição tk.ANCHOR até à posição indice, exclusive.
Exemplo 1:
from tkinter import *
window = Tk()
window.title("Tkinter - Entry")
window.geometry("200x100")
#função de callback do botão:
def showNome():
#print(strNome.get())
print(entry.get())
#variável de controle da entry:
strNome = StringVar()
Label(window, text="Nome:").pack(anchor='w', padx='2')
#criação da entry:
entry = Entry(window, bd=1, bg="white",
highlightbackground="#bebebe",
highlightthickness=1,
textvariable=strNome)
entry.pack(anchor='w', padx='2')
Button(window, text = "GO" ,command=showNome).pack(anchor='w', padx='2')
window.mainloop()
Saída:

Exemplo 2:
from tkinter import *
from tkinter import messagebox
window = Tk()
window.title("Tkinter - Entry")
window.geometry("200x100")
#função de callback do botão:
def showFields():
print(entryNome.get())
print(entryPassword.get())
messagebox.showinfo("Login", entryNome.get() + " " + entryPassword.get())
#variáveis de controle das entries:
strNome = StringVar()
strPassword = StringVar()
Label(window, text="Nome:").grid(row=1)
#criação da entry nome:
entryNome = Entry(window, bd=1, bg="white",
highlightbackground="#bebebe",
highlightthickness=1,
textvariable=strNome)
entryNome.grid(row=1, column=1)
Label(window, text="Password:").grid(row=2)
#criação da entry password:
entryPassword = Entry(window, bd=1, bg="white",
highlightbackground="#bebebe",
highlightthickness=1,
textvariable=strPassword)
#configura a entry para substituir caracteres digitados por '*':
entryPassword.config(show="*");
entryPassword.grid(row=2, column=1)
Button(window, text = "Ligar" ,command=showFields).grid(row=3, column=1, sticky=E)
window.mainloop()
Saída:
