Introdução aos Widgets
Os widgets são componentes fundamentais para criar interfaces gráficas em Python. Um widget é um elemento gráfico da interface do utilizador, como botões, caixas de texto, etiquetas e tabelas. Eles permitem que os utilizadores interajam com o programa de uma forma intuitiva e visual.
Neste capítulo, iremos focar-nos na biblioteca Tkinter
, uma das bibliotecas mais populares e simples para criar interfaces gráficas em Python. Veremos como criar uma janela básica, adicionar widgets e ligar esses widgets a funcionalidades específicas.
Criar uma Janela Básica
Antes de adicionar widgets, precisamos de criar uma janela básica. O código abaixo mostra como criar uma janela inicial usando Tkinter
:
import tkinter as tk
# Criar a janela principal
root = tk.Tk()
root.title("Minha Primeira Janela")
# Definir o tamanho da janela
root.geometry("400x300")
# Iniciar o loop principal da interface gráfica
root.mainloop()
Adicionar Widgets à Janela
Agora que temos a nossa janela, vamos adicionar alguns widgets. No exemplo abaixo, iremos adicionar uma etiqueta (label) e um botão (button):
import tkinter as tk
def mostrar_mensagem():
label_mensagem.config(text="Olá, Mundo!")
# Criar a janela principal
root = tk.Tk()
root.title("Minha Primeira Janela")
# Definir o tamanho da janela
root.geometry("400x300")
# Criar uma etiqueta
label_mensagem = tk.Label(root, text="Clique no botão para ver a mensagem")
label_mensagem.pack(pady=20)
# Criar um botão
btn_mostrar = tk.Button(root, text="Mostrar Mensagem", command=mostrar_mensagem)
btn_mostrar.pack(pady=10)
# Iniciar o loop principal da interface gráfica
root.mainloop()
No código acima, criamos duas funções principais: a Label
e o Button
. A função mostrar_mensagem
é associada ao botão, utilizando o parâmetro command
. Quando o botão é clicado, a mensagem "Olá, Mundo!" aparece na etiqueta.
Exemplo Prático: Calculadora Simples
Vamos aplicar o que aprendemos para criar uma calculadora simples que realiza operações básicas como adição, subtração, multiplicação e divisão.
import tkinter as tk
def calcular():
try:
resultado = eval(entry_texto.get())
label_resultado.config(text=f"Resultado: {resultado}")
except Exception as e:
label_resultado.config(text="Erro na expressão!")
# Criar a janela principal
root = tk.Tk()
root.title("Calculadora Simples")
# Definir o tamanho da janela
root.geometry("300x200")
# Entrada de texto para a expressão
entry_texto = tk.Entry(root, width=30)
entry_texto.pack(pady=10)
# Botão para calcular
btn_calcular = tk.Button(root, text="Calcular", command=calcular)
btn_calcular.pack(pady=5)
# Etiqueta para mostrar o resultado
label_resultado = tk.Label(root, text="Resultado: ")
label_resultado.pack(pady=5)
# Iniciar o loop principal da interface gráfica
root.mainloop()
Neste exemplo, criamos uma calculadora básica que permite aos utilizadores introduzir uma expressão matemática numa caixa de texto. Quando o botão "Calcular" é clicado, a função calcular
avalia a expressão e mostra o resultado numa etiqueta. Utilizamos a função eval
para avaliar a expressão inserida pelo utilizador, mas note que esta função deve ser usada com cautela devido a problemas de segurança.
Resumo
Neste capítulo, aprendemos a:
- Criar uma janela básica usando a biblioteca
Tkinter
- Adicionar widgets, como etiquetas e botões, à nossa janela
- Ligar funções a widgets para criar interações
- Construir um exemplo prático de uma calculadora simples
Widgets são elementos essenciais para desenvolver interfaces gráficas em Python, proporcionando uma forma visual e interativa de utilizar programas.
Quiz
-
O que é um widget?
- a. Um tipo de variável em Python
- b. Um elemento gráfico da interface do utilizador
- c. Um operador matemático
-
Qual biblioteca utilizamos para criar interfaces gráficas neste capítulo?
- a. Matplotlib
- b. Pandas
- c. Tkinter
-
Qual é a função de
root.mainloop()
no códigoTkinter
?- a. Iniciar o loop principal da interface gráfica
- b. Criar um botão
- c. Definir o tamanho da janela
-
No exemplo da calculadora, qual função é associada ao botão "Calcular"?
- a.
mostrar_mensagem
- b.
label_resultado
- c.
calcular
- a.