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çãoDescrição
bd ou borderwidthEspessura do bordo à volta da caixa de texto. Valor de defeito: 2 pixeis.
bg ou backgroundCor de fundo.
cursorNome do cursor a ser mostrado quando o rato está sobre a caixa de texto.
disabledforegroundCor de texto usado quando a caixa de texto estiver desabilitado.
exportselectionPor 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.
fontFonte do texto.
fg ou foregroundCor de texto.
fontNome da fonte do texto da caixa de texto.
highlightbackgroundCor do foco quando a caixa de texto nao tem o foco.
highlightcolorCor do foco quando a caixa de texto tem o foco.
highlightthicknessEspessura do foco.
insertbackgroundPor defeito, o cursor de inserção de texto é preto. Para usar outra côr no cursor de inserção, usar esta propriedade.
insertborderwidthPor 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).
insertofftimePor 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.
insertontimePor defeito, o cursor de inserção pisca. Esta propriedade está on durante 600 milisegundos. Esta propriedade permite alterar esse valor.
insertwidthEspessura do cursor de inserção. Valor de defeito é 2 pixeis.
justifyJustificação de multiplas linhas: tk.LEFT, tk.CENTER ou tk.RIGHT.
readonlybackgroundCor de fundo quando a opção state é igual a readonly
reliefTipo de relevo da caixa de texto. Valor de defeito: tk.RAISED.
selectbackgroundCor de fundo escolhida para texto selecionado.
selectborderwidthEspessura do rebordo à volta do texto selecionado.
selectforegroundCor do texto selecionado.
showNormalmente, 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=’*’.
stateValor 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.
takefocusSe igual a zero a caixa de texto não receberá o foco a partir do teclado.
textTexto da caixa de texto.
textvariablePara 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().
validatePode usar esta opção para validar o conteúdo da caixa de texto.
validatecommandFunção de callback que valida o conteúdo da caixa de texto.
widthLargura da caixa de texto em carateres (para botão com text). O valor de defeito é 20.
xscrollcommandLiga 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: