1. Tworzenie interfejsu do pracy z raportami
Więc, drodzy studenci, czas zanurzyć się w projektowanie i tworzenie interfejsu, który pozwoli nam nie tylko zbierać dane, ale także przedstawiać je w przejrzysty i, co najważniejsze, atrakcyjny sposób. Dziś tworzymy aplikację, która sprawi, że generowanie i przeglądanie raportów będzie łatwe jak programowanie w Python po filiżance mocnej kawy!
Tworzenie interfejsu do wyboru i wyświetlania raportów
Zaczniemy od stworzenia interfejsu, z którego użytkownik będzie mógł wybierać raporty do wyświetlenia. Interfejs będzie zawierał przyciski do ładowania danych, listy rozwijane do wyboru różnych raportów oraz obszar do wyświetlania wykresów.
import tkinter as tk
from tkinter import ttk
# Tworzymy główne okno
root = tk.Tk()
root.title("Raporty i dane")
# Dodajemy listę rozwijaną do wyboru raportu
report_label = ttk.Label(root, text="Wybierz raport:")
report_label.pack(pady=10)
report_options = ["Raport nr 1", "Raport nr 2", "Raport nr 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)
# Uruchamiamy główną pętlę aplikacji
root.mainloop()
Po uruchomieniu powyższego kodu zobaczysz proste okno, w którym można wybrać jeden z dostępnych raportów. Chociaż jeszcze nie widać wykresów, to podstawa, na której zbudujemy funkcjonalność aplikacji.
2. Integracja z bibliotekami graficznymi
Wykorzystanie Matplotlib do wyświetlania wykresów w aplikacji
Dotrzemy teraz do wykresów. Do ich wizualizacji będziemy korzystać z popularnej biblioteki Matplotlib. Ta biblioteka doskonale nadaje się do wizualizacji danych i może być zintegrowana z aplikacją Tkinter. Na początek upewnij się, że biblioteka jest zainstalowana:
pip install matplotlib
Teraz dodamy wykres do naszego interfejsu, korzystając z FigureCanvasTkAgg
do integracji z Tkinter.
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
# Tworzymy obszar dla wykresów
def plot_report():
# Tworzymy testowy wykres
fig = Figure(figsize=(5, 4), dpi=100)
plot = fig.add_subplot(111)
plot.plot([1, 2, 3, 4, 5], [2, 3, 5, 7, 11]) # Przykładowe dane
# Integracja wykresu z aplikacją Tkinter
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack()
# Dodajemy przycisk do generowania wykresu
plot_button = ttk.Button(root, text="Generuj raport", command=plot_report)
plot_button.pack(pady=20)
Korzystając z powyższego przykładu, można wyświetlić prosty wykres po kliknięciu przycisku "Generuj raport". Oczywiście to dopiero początek. W praktyce zastąpisz ten prosty wykres danymi z rzeczywistych raportów.
3. Praktyczne zastosowanie
Tworzenie aplikacji do generowania i przeglądania raportów z integracją wykresów i danych
Teraz, gdy mamy podstawę naszego interfejsu z wykresami, możemy badać, jak przedstawiać dane w bardziej złożony i funkcjonalny sposób. W tym celu możesz integrować dane z przetworzonych plików Excel lub CSV oraz wyświetlać dowolne formy wizualizacji, które pasują do twojego zastosowania.
import pandas as pd
import random
def load_data():
# Przykład generowania losowych danych
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)
Eksport raportów i danych z interfejsu do różnych formatów do dalszego wykorzystania
Aby aplikacja była nie tylko demonstracyjna, ale też użyteczna, ważne jest zaimplementowanie możliwości eksportu danych. Na przykład do pliku PDF lub Excel, co pozwoli dzielić się raportami z kolegami lub przełożonymi:
from tkinter import filedialog
import matplotlib.pyplot as plt
def export_report():
# Generowanie danych i tworzenie wykresu
data = load_data()
fig, ax = plt.subplots()
ax.plot(data['x'], data['y'])
# Wybór ścieżki zapisu
file_path = filedialog.asksaveasfilename(defaultextension=".pdf",
filetypes=[("Pliki PDF", "*.pdf"), ("Wszystkie pliki", "*.*")])
if file_path:
fig.savefig(file_path)
print(f"Raport zapisano w {file_path}")
# Dodajemy przycisk do eksportu
export_button = ttk.Button(root, text="Eksport raportu", command=export_report)
export_button.pack(pady=10)
Funkcja export_report
pozwala wybrać, do którego pliku zapisać wykres, i zapisuje go w wskazanym formacie. Teraz twoja aplikacja nie tylko wizualizuje dane, ale też umożliwia ich przechowywanie w wygodnej formie.
W ten sposób nauczyliście się tworzyć interfejs do pracy z raportami, integrować z nim wykresy przy pomocy Matplotlib i dodawać funkcjonalności eksportu. W praktyce takie umiejętności są niezwykle przydatne w tworzeniu narzędzi do automatyzacji raportów, analizy danych i przedstawiania ich w przystępnej formie. Mam nadzieję, że podobało wam się! I pamiętajcie, prawdziwa magia programowania dzieje się, gdy kod ożywa w postaci użytecznego narzędzia.
GO TO FULL VERSION