Widgets

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

  1. 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
  2. Qual biblioteca utilizamos para criar interfaces gráficas neste capítulo?

    • a. Matplotlib
    • b. Pandas
    • c. Tkinter
  3. Qual é a função de root.mainloop() no código Tkinter?

    • a. Iniciar o loop principal da interface gráfica
    • b. Criar um botão
    • c. Definir o tamanho da janela
  4. No exemplo da calculadora, qual função é associada ao botão "Calcular"?

    • a. mostrar_mensagem
    • b. label_resultado
    • c. calcular
<< Profilers de memória e cp... Índice Geradores >>