Skip to content

Commit 271fe7c

Browse files
author
marci
committed
feat: add prominent header with logo, app title and version
- Create dedicated header section with professional layout - Display large logo (48x48) next to application title - Show 'Bash-Script-Maker' title in large bold font (24pt) - Add version number and descriptive subtitle - Include startup date as additional context - Implement visual separator between header and toolbar - Maintain fallback options for logo display (PIL, emoji, text) - Enhance overall professional appearance and branding
1 parent 0b53e5d commit 271fe7c

1 file changed

Lines changed: 91 additions & 5 deletions

File tree

bash_script_maker.py

Lines changed: 91 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,92 @@ def add_logo_to_toolbar(self, toolbar):
481481
except:
482482
pass
483483

484+
def create_header(self):
485+
"""Erstellt den Header-Bereich mit Logo, App-Titel und Version"""
486+
header_frame = ttk.Frame(self.root, bootstyle="primary")
487+
header_frame.pack(side=tk.TOP, fill=tk.X, padx=5, pady=(5, 10))
488+
489+
# Header-Container für bessere Kontrolle
490+
header_container = ttk.Frame(header_frame)
491+
header_container.pack(fill=tk.X, padx=15, pady=10)
492+
493+
# Logo (links)
494+
logo_frame = ttk.Frame(header_container)
495+
logo_frame.pack(side=tk.LEFT)
496+
497+
try:
498+
script_dir = os.path.dirname(os.path.abspath(__file__))
499+
logo_path = os.path.join(script_dir, "assets", "bash-script-maker-48.png")
500+
501+
if os.path.exists(logo_path):
502+
try:
503+
from PIL import Image, ImageTk
504+
505+
# Logo für Header (48x48)
506+
img = Image.open(logo_path)
507+
logo_photo = ImageTk.PhotoImage(img)
508+
509+
logo_label = ttk.Label(logo_frame, image=logo_photo)
510+
logo_label.image = logo_photo # Referenz behalten
511+
logo_label.pack(side=tk.LEFT, padx=(0, 15))
512+
513+
except ImportError:
514+
# Fallback: Großes Emoji
515+
logo_label = ttk.Label(logo_frame, text="🖥️", font=("Arial", 36))
516+
logo_label.pack(side=tk.LEFT, padx=(0, 15))
517+
else:
518+
# Fallback: Emoji
519+
logo_label = ttk.Label(logo_frame, text="🖥️", font=("Arial", 36))
520+
logo_label.pack(side=tk.LEFT, padx=(0, 15))
521+
522+
except Exception as e:
523+
print(f"Fehler beim Laden des Header-Logos: {e}")
524+
# Minimaler Fallback
525+
logo_label = ttk.Label(logo_frame, text="🖥️", font=("Arial", 24))
526+
logo_label.pack(side=tk.LEFT, padx=(0, 15))
527+
528+
# Titel und Version (mittig-links)
529+
title_frame = ttk.Frame(header_container)
530+
title_frame.pack(side=tk.LEFT, fill=tk.X, expand=True)
531+
532+
# Haupttitel
533+
title_label = ttk.Label(
534+
title_frame,
535+
text="Bash-Script-Maker",
536+
font=("Arial", 24, "bold"),
537+
bootstyle="inverse-primary"
538+
)
539+
title_label.pack(anchor=tk.W)
540+
541+
# Untertitel mit Version
542+
subtitle_label = ttk.Label(
543+
title_frame,
544+
text=f"Version {__version__} - Professioneller Bash-Script-Generator",
545+
font=("Arial", 11),
546+
bootstyle="inverse-secondary"
547+
)
548+
subtitle_label.pack(anchor=tk.W, pady=(2, 0))
549+
550+
# Status-Info (rechts)
551+
status_frame = ttk.Frame(header_container)
552+
status_frame.pack(side=tk.RIGHT)
553+
554+
# Aktuelle Zeit/Datum als zusätzliche Info
555+
import datetime
556+
current_time = datetime.datetime.now().strftime("%d.%m.%Y")
557+
558+
info_label = ttk.Label(
559+
status_frame,
560+
text=f"Gestartet: {current_time}",
561+
font=("Arial", 9),
562+
bootstyle="inverse-secondary"
563+
)
564+
info_label.pack(anchor=tk.E)
565+
566+
# Separator-Linie unter dem Header
567+
separator = ttk.Separator(self.root, orient=tk.HORIZONTAL)
568+
separator.pack(side=tk.TOP, fill=tk.X, padx=5)
569+
484570
def create_menu(self):
485571
"""Erstellt das Menü der Anwendung"""
486572
menubar = tk.Menu(self.root)
@@ -601,12 +687,12 @@ def create_main_interface(self):
601687
)
602688
status_bar.pack(side=tk.BOTTOM, fill=tk.X)
603689

604-
# Toolbar ganz oben platzieren
605-
toolbar = ttk.Frame(self.root)
606-
toolbar.pack(side=tk.TOP, fill=tk.X, padx=5, pady=(5, 0))
690+
# Header-Bereich für App-Titel und Logo
691+
self.create_header()
607692

608-
# Logo hinzufügen (links)
609-
self.add_logo_to_toolbar(toolbar)
693+
# Toolbar für Buttons
694+
toolbar = ttk.Frame(self.root)
695+
toolbar.pack(side=tk.TOP, fill=tk.X, padx=5, pady=(0, 0))
610696

611697
# Toolbar-Inhalte - LINKS
612698
btn_new = ttk.Button(

0 commit comments

Comments
 (0)