Tkinter Tutorial - Entrada

Jinku Hu 30 janeiro 2023
  1. Exemplo de Entrada de Tkinter
  2. Texto Padrão de Entrada de Tkinter
Tkinter Tutorial - Entrada

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

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).
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook