Tkinter Tutorial - Entrada

  1. Exemplo de Entrada de Tkinter
  2. Texto Padrão de Entrada de Tkinter

O widget Tkinter Entry permite ao usuário inserir uma única linha de texto que tenha apenas um tipo de fonte. Se forem necessárias mais linhas, você deve utilizar o widget Tkinter Text. O widget Entry também pode ser utilizado para exibir o texto de uma única linha.

Exemplo de Entrada de Tkinter

Tkinter Entry_Basic.py
import tkinter as tk
from tkinter import ttk

def callbackFunc():
    resultString.set("{} - {}".format(landString.get(),
                                      cityString.get()))
     
app = tk.Tk() 
app.geometry('200x100')

labelLand = tk.Label(app,
                    text = "Country")
labelLand.grid(column=0, row=0, sticky=tk.W)
labelCity = tk.Label(app,
                    text = "City")
labelCity.grid(column=0, row=1, sticky=tk.W)

landString = tk.StringVar()
cityString = tk.StringVar()
entryLand = tk.Entry(app, width=20, textvariable=landString)
entryCity = tk.Entry(app, width=20, textvariable=cityString)

entryLand.grid(column=1, row=0, padx=10)
entryCity.grid(column=1, row=1, padx=10)


resultButton = tk.Button(app, text = 'Get Result',
                         command=callbackFunc)

resultButton.grid(column=0, row=2, pady=10, sticky=tk.W)

resultString=tk.StringVar()
resultLabel = tk.Label(app, textvariable=resultString)
resultLabel.grid(column=1, row=2, padx=10, sticky=tk.W)

app.mainloop()

Este código de exemplo cria uma GUI que o usuário pode digitar os nomes do país e da cidade, então ele exibe as informações digitadas após clicar no botão Get Result.

Tkinter Tutorial_Entry Basic

entryLand = tk.Entry(app, width=20, textvariable=landString)

Ele cria uma instância Tkinter Entry widget cuja largura é de 20 unidades de caracteres. Ele só poderia exibir 20 caracteres na caixa de entrada, portanto, você precisa usar as teclas de seta para exibir o resto da linha se a linha de texto tiver mais de 20 caracteres.

O texto do widget de entrada é atribuído a uma variável de string Tkinter landString. Você pode obter o texto com o método landString.get(), e definir o texto com o método landString.set(). O texto na caixa de entrada é atualizado automaticamente se o método set() for utilizado.

Nota

Além de get() method of StringVar, você também poderia utilizar get() method of Entry widget object to retrive the string in Entry box.

Texto Padrão de Entrada de Tkinter

Temos duas formas de definir o texto padrão de Entry,

set() Método para definir Tkinter Entry Texto padrão

Como indicado no exemplo acima, você poderia utilizar o método set() de StringVar para definir o texto padrão de Tkinter Entry.

Por exemplo,

landString.set("Netherlands")

Ele definirá o texto padrão como Netherlands.

insert() Método para definir Tkinter Entry Texto padrão

O método insert(index, string) insere o texto string na posição dada index. E se index for END, ele anexa o texto ao widget Entry.

entryLand.insert(tk.END, "Netherlands")

Ele define o texto padrão para ser Netherlands.

Nota

Se index for maior do que o comprimento da string existente no widget, é igual a insert(END, string).