CodeGym /Cursos /Python SELF PT /Desenvolvimento de interface para trabalhar com relatório...

Desenvolvimento de interface para trabalhar com relatórios e dados

Python SELF PT
Nível 50 , Lição 4
Disponível

1. Criando a interface para trabalhar com relatórios

Então, galera, chegou a hora de mergulhar no design e desenvolvimento de uma interface que nos permita não só reunir dados, mas também apresentá-los de uma forma compreensível e, o mais importante, bonita. Hoje vamos criar um aplicativo que faz com que gerar e visualizar relatórios seja tão fácil quanto programar em Python depois de uma xícara de café forte!

Construindo a interface para selecionar e exibir relatórios

Vamos começar criando uma interface onde o usuário pode escolher os relatórios para exibição. A interface terá botões para carregar dados, menus suspensos para selecionar diferentes relatórios e uma área para exibir gráficos.


import tkinter as tk
from tkinter import ttk

# Criando a janela principal
root = tk.Tk()
root.title("Relatórios e Dados")

# Adicionando um menu suspenso para selecionar o relatório
report_label = ttk.Label(root, text="Escolha o relatório:")
report_label.pack(pady=10)

report_options = ["Relatório nº1", "Relatório nº2", "Relatório nº3"]
selected_report = tk.StringVar(value=report_options[0])

report_menu = ttk.Combobox(root, textvariable=selected_report, values=report_options)
report_menu.pack(pady=10)

# Inicia o loop principal do aplicativo
root.mainloop()

Ao executar o código acima, você verá uma janela simples onde pode selecionar um dos relatórios disponíveis. Embora os gráficos ainda não sejam exibidos, esta é a base sobre a qual construiremos a funcionalidade do aplicativo.

2. Integração com bibliotecas gráficas

Usando Matplotlib para exibir gráficos no aplicativo

Vamos aos gráficos. Para visualizá-los, usaremos a popular biblioteca Matplotlib. Essa biblioteca é ótima para exibir dados e pode ser integrada a um aplicativo baseado em Tkinter. Primeiro, certifique-se de que a biblioteca está instalada:


pip install matplotlib

Agora, vamos adicionar um gráfico à nossa interface, usando FigureCanvasTkAgg para integrar com o Tkinter.


from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

# Criando a área para os gráficos
def plot_report():
    # Criando um gráfico de teste
    fig = Figure(figsize=(5, 4), dpi=100)
    plot = fig.add_subplot(111)
    plot.plot([1, 2, 3, 4, 5], [2, 3, 5, 7, 11])  # Exemplo de dados

    # Integrando o gráfico ao aplicativo Tkinter
    canvas = FigureCanvasTkAgg(fig, master=root)
    canvas.draw()
    canvas.get_tk_widget().pack()

# Adicionando botão para criar o gráfico
plot_button = ttk.Button(root, text="Gerar Relatório", command=plot_report)
plot_button.pack(pady=20)

Usando o exemplo acima, você pode exibir um gráfico simples ao clicar no botão "Gerar Relatório". Claro, isso é apenas o começo. Na prática, você substituirá esse gráfico simples por dados reais dos relatórios.

3. Aplicação prática

Criando um aplicativo para gerar e exibir relatórios com integração de gráficos e dados

Agora que temos a base da nossa interface com gráficos, podemos explorar como representar dados de uma forma mais complexa e funcional. Para isso, você pode integrar dados de seus arquivos Excel ou CSV processados, bem como exibir qualquer formato de visualização adequado à sua aplicação.


import pandas as pd
import random

def load_data():
    # Exemplo de geração de dados aleatórios
    data = pd.DataFrame({
        "x": list(range(1, 11)),
        "y": [random.randint(1, 10) for _ in range(10)]
    })
    return data

def plot_data_report():
    data = load_data()
    fig = Figure(figsize=(5, 4), dpi=100)
    plot = fig.add_subplot(111)
    plot.plot(data['x'], data['y'])

    canvas = FigureCanvasTkAgg(fig, master=root)
    canvas.draw()
    canvas.get_tk_widget().pack()

plot_button.config(command=plot_data_report)

Exportando relatórios e dados da interface para vários formatos para uso posterior

Para que o aplicativo não seja apenas demonstrativo, mas também útil, é importante implementar a capacidade de exportar dados. Por exemplo, para um arquivo PDF ou Excel, o que permitirá compartilhar relatórios com colegas ou chefes:


from tkinter import filedialog
import matplotlib.pyplot as plt

def export_report():
    # Gerando os dados e criando o gráfico
    data = load_data()
    fig, ax = plt.subplots()
    ax.plot(data['x'], data['y'])

    # Selecionando o local para salvar
    file_path = filedialog.asksaveasfilename(defaultextension=".pdf",
                                             filetypes=[("Arquivos PDF", "*.pdf"), ("Todos os Arquivos", "*.*")])
    if file_path:
        fig.savefig(file_path)
        print(f"Relatório salvo em {file_path}")

# Adicionando botão para exportar
export_button = ttk.Button(root, text="Exportar Relatório", command=export_report)
export_button.pack(pady=10)

A função export_report permite selecionar em qual arquivo salvar o gráfico, salvando-o no formato especificado. Agora, seu aplicativo não apenas visualiza dados, mas também oferece a opção de armazená-los de forma conveniente.

Assim, você aprendeu como criar uma interface para trabalhar com relatórios, integrá-la com gráficos usando Matplotlib e adicionar funcionalidade de exportação. Na prática, essas habilidades são extremamente úteis para desenvolver ferramentas de automação de relatórios, análise de dados e apresentação de dados de forma fácil de entender. Espero que vocês tenham gostado! E lembrem-se, a mágica real da programação acontece quando o código ganha vida na forma de uma ferramenta útil.

1
Pesquisa/teste
Criação de aplicativo interativo, nível 50, lição 4
Indisponível
Criação de aplicativo interativo
Criação de aplicativo interativo
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION