72 lines
2.6 KiB
Python
72 lines
2.6 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Kapitel 16: Master-Abschlussprojekt – Desktop App Launcher 🐾🖥️
|
||
===============================================================
|
||
Startet die vollwertige grafische Desktop-Applikation 'Tierheim & PetCare Pro'.
|
||
|
||
Ausführen mit:
|
||
python3 app.py
|
||
"""
|
||
|
||
import sys
|
||
from pathlib import Path
|
||
|
||
# Pfad hinzufügen, um Module des Kapitels sauber zu importieren
|
||
sys.path.insert(0, str(Path(__file__).parent))
|
||
|
||
try:
|
||
import tkinter as tk
|
||
from tkinter import messagebox
|
||
TK_AVAILABLE = True
|
||
except ImportError:
|
||
TK_AVAILABLE = False
|
||
|
||
# Importiere Klassen aus aufgabe oder musterloesung
|
||
try:
|
||
from musterloesung import Tierheim, TierheimApp, Hund, Katze, Vogel
|
||
except ImportError:
|
||
from aufgabe import Tierheim, TierheimApp, Hund, Katze, Vogel
|
||
|
||
|
||
def starte_musterdaten_tierheim() -> Tierheim:
|
||
"""Erstellt ein Tierheim mit liebevoll gestalteten Beispieltieren."""
|
||
heim = Tierheim(name="Tierheim Sonnenschein & Pfotenglück", max_kapazitaet=15)
|
||
|
||
# Beispieldaten hinzufügen
|
||
bello = Hund("Bello", alter=3, gewicht=16.5, rasse="Golden Retriever", geimpft=True, hunger=30, gassigegangen=True)
|
||
luna = Katze("Luna", alter=2, gewicht=4.1, stubenrein=True, geimpft=True, hunger=40)
|
||
rocky = Hund("Rocky", alter=5, gewicht=22.0, rasse="Deutscher Schäferhund", geimpft=False, hunger=70)
|
||
mimi = Katze("Mimi", alter=1, gewicht=3.2, stubenrein=True, geimpft=False, hunger=60)
|
||
tweety = Vogel("Tweety", alter=1, gewicht=0.25, spannweite_cm=18.5, kann_sprechen=True, geimpft=True, hunger=20)
|
||
charly = Vogel("Charly", alter=4, gewicht=0.45, spannweite_cm=28.0, kann_sprechen=False, geimpft=False, hunger=80)
|
||
|
||
for t in (bello, luna, rocky, mimi, tweety, charly):
|
||
heim.tier_aufnehmen(t)
|
||
|
||
return heim
|
||
|
||
|
||
def main():
|
||
print("=" * 65)
|
||
print("🐾 Tierheim- & PetCare-Manager Pro (Master-Abschlussprojekt)")
|
||
print("=" * 65)
|
||
|
||
if not TK_AVAILABLE:
|
||
print("⚠️ Hinweis: Tkinter ist auf diesem System nicht verfügbar.")
|
||
print("💡 Führe 'python3 test_aufgabe.py' aus, um das System headless zu testen!")
|
||
return
|
||
|
||
try:
|
||
root = tk.Tk()
|
||
heim = starte_musterdaten_tierheim()
|
||
app = TierheimApp(root, heim)
|
||
print(f"✨ GUI erfolgreich gestartet mit {len(heim)} Beispieltieren.")
|
||
print("🖥️ Schließe das Fenster, um die Anwendung zu beenden.")
|
||
root.mainloop()
|
||
except Exception as e:
|
||
print(f"⚠️ Konnte GUI nicht im Display anzeigen: {e}")
|
||
print("💡 Auf Servern ohne Monitor (Headless) kannst du die Logik mit 'python3 test_aufgabe.py' prüfen.")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|