1. Criando Botões no Tkinter
Por que precisamos disso?
Imagina que você está criando uma calculadora. Quem iria usar se não fosse possível inserir dados e clicar no botão de igual? Ou talvez você esteja desenvolvendo um formulário para entrada de dados. Bem, aqui os campos de entrada e os botões são muito úteis também.
Os botões e os campos de entrada permitem que o usuário interaja diretamente com o programa e seu comportamento. É como uma varinha mágica que transforma uma janela passiva numa ferramenta ativa.
Como é um botão no Tkinter?
A biblioteca Tkinter oferece o widget Button
para criar botões. Esse widget é bem flexível e permite personalizar o texto do botão, a cor, além de atribuir uma ação que será executada ao clicar.
É assim que se faz:
import tkinter as tk
# Criando a janela principal
root = tk.Tk()
root.title("Meu aplicativo")
# Criando um botão e adicionando à janela
button = tk.Button(root, text="Clique em mim!", command=lambda: print("Botão clicado!"))
button.pack()
# Iniciando o loop principal
root.mainloop()
Preste atenção no parâmetro command
: ele permite vincular uma ação específica ao botão. No exemplo acima, ao clicar no botão, será exibida no console a mensagem "Botão clicado!".
Vamos estilizar o botão
É claro que você quer que seus botões não só funcionem, mas também fiquem bonitos. Vamos adicionar um pouco de criatividade:
button = tk.Button(root, text="Clique em mim!", command=lambda: print("Botão clicado!"), bg="blue", fg="white", font=("Helvetica", 16))
button.pack(pady=10)
bg
efg
— definem a cor do fundo e do texto, respectivamente.font
— permite escolher a fonte e o tamanho dela.pady
— cria espaço vertical para o botão respirar.
2. Campos de Entrada com Tkinter
Agora vamos aos campos de entrada de texto. São aquelas pequenas janelas onde o usuário pode inserir suas vontades (e não só).
Entrada de texto simples
Criar um campo de entrada é super fácil usando o widget Entry
:
entry = tk.Entry(root)
entry.pack()
Mas que utilidade tem um campo criado se você não pode pegar os dados? Vamos aprender como fazer isso!
def get_input():
user_input = entry.get()
print(f"O usuário inseriu: {user_input}")
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, text="Obter entrada", command=get_input)
button.pack()
Legal, agora temos um botão que mostra na tela o que foi digitado no campo.
Estilizando o campo de entrada
Assim como os botões, os campos de entrada também podem ser estilizados:
entry = tk.Entry(root, font=("Arial", 14), fg="black", bg="lightyellow")
entry.pack(padx=5, pady=5)
Aqui definimos a fonte, a cor do texto e do fundo. Os parâmetros padx
e pady
adicionam espaços horizontais e verticais, respectivamente.
3. Aplicação prática
Vamos juntar tudo e criar um aplicativo onde o usuário pode inserir dados e clicar no botão para processar as informações inseridas. Vamos criar uma pequena calculadora que soma os números inseridos.
import tkinter as tk
def calculate():
try:
# Pegando os valores dos campos
number1 = float(entry1.get())
number2 = float(entry2.get())
# Calculando a soma
result = number1 + number2
# Atualizando o texto do resultado
result_label.config(text=f"Resultado: {result}")
except ValueError:
result_label.config(text="Digite números válidos!")
# Criando a janela principal
root = tk.Tk()
root.title("Calculadora Simples")
# Campos de entrada para os números
entry1 = tk.Entry(root, width=10)
entry1.pack(pady=5)
entry2 = tk.Entry(root, width=10)
entry2.pack(pady=5)
# Botão para calcular
calculate_button = tk.Button(root, text="Somar", command=calculate)
calculate_button.pack(pady=10)
# Label para exibir o resultado
result_label = tk.Label(root, text="Resultado: ")
result_label.pack()
# Iniciando o loop principal
root.mainloop()
Pronto, criamos uma pequena e eficiente aplicação de calculadora que permite ao usuário inserir dados e ver o resultado.
Debug ao trabalhar com widgets
Ao trabalhar com botões e campos de entrada, você pode encontrar alguns erros típicos. Por exemplo, é comum o handler do botão não ser executado. Descubra o motivo — o parâmetro command
pode estar faltando ou há um erro de sintaxe na função lambda.
Também é comum ocorrerem erros relacionados à entrada incorreta de dados. Por isso, sempre verifique e trate a entrada, como fizemos na nossa calculadora para evitar problemas.
Isso é tudo por hoje! Agora você sabe como adicionar botões e campos de entrada no seu aplicativo para tornar a interação com o usuário mais interativa e divertida. O próximo passo é a manipulação de eventos ao clicar nos botões, mas isso é assunto para a próxima aula!
GO TO FULL VERSION