Untitled
unknown
plain_text
6 months ago
4.8 kB
3
Indexable
import customtkinter as ctk from PIL import Image import os class SettingsMenu: def __init__(self, master): self.master = master self.master.geometry("1024x600") self.master.title("Modern Settings") # Hauptcontainer self.main_frame = ctk.CTkFrame(master) self.main_frame.pack(fill="both", expand=True) # Settings Icon erstellen (oben rechts) self.settings_button = ctk.CTkButton( self.main_frame, text="⚙️", width=40, height=40, command=self.toggle_settings, fg_color="transparent", hover_color=("gray75", "gray25") ) self.settings_button.pack(anchor="ne", padx=20, pady=20) # Settings Panel (initial versteckt) self.settings_panel = None self.settings_visible = False def toggle_settings(self): if self.settings_visible: self.hide_settings() else: self.show_settings() def show_settings(self): # Hauptinhalt ausblenden for widget in self.main_frame.winfo_children(): if widget != self.settings_button: widget.pack_forget() # Settings Panel erstellen self.settings_panel = ctk.CTkFrame(self.main_frame) self.settings_panel.pack(fill="both", expand=True, padx=20, pady=(0, 20)) # Überschrift title = ctk.CTkLabel( self.settings_panel, text="Einstellungen", font=ctk.CTkFont(size=24, weight="bold") ) title.pack(pady=20) # Einstellungskategorien categories = ["Erscheinungsbild", "Audio", "Display", "System"] for category in categories: category_frame = self.create_category_frame(category) category_frame.pack(fill="x", padx=20, pady=10) self.settings_visible = True def create_category_frame(self, category): frame = ctk.CTkFrame(self.settings_panel) # Kategorie-Header header = ctk.CTkButton( frame, text=category, anchor="w", fg_color="transparent", hover_color=("gray75", "gray25"), command=lambda c=category: self.toggle_category(c, frame) ) header.pack(fill="x", padx=10, pady=5) # Beispiel-Einstellungen für jede Kategorie if category == "Erscheinungsbild": self.add_appearance_settings(frame) elif category == "Audio": self.add_audio_settings(frame) elif category == "Display": self.add_display_settings(frame) elif category == "System": self.add_system_settings(frame) return frame def add_appearance_settings(self, frame): # Theme Switcher theme_frame = ctk.CTkFrame(frame) theme_frame.pack(fill="x", padx=20, pady=5) theme_label = ctk.CTkLabel(theme_frame, text="Theme") theme_label.pack(side="left", padx=5) theme_switch = ctk.CTkSwitch(theme_frame, text="Dark Mode") theme_switch.pack(side="right", padx=5) def add_audio_settings(self, frame): # Volume Slider volume_frame = ctk.CTkFrame(frame) volume_frame.pack(fill="x", padx=20, pady=5) volume_label = ctk.CTkLabel(volume_frame, text="Lautstärke") volume_label.pack(side="left", padx=5) volume_slider = ctk.CTkSlider(volume_frame) volume_slider.pack(side="right", padx=5, expand=True) def add_display_settings(self, frame): # Brightness Slider brightness_frame = ctk.CTkFrame(frame) brightness_frame.pack(fill="x", padx=20, pady=5) brightness_label = ctk.CTkLabel(brightness_frame, text="Helligkeit") brightness_label.pack(side="left", padx=5) brightness_slider = ctk.CTkSlider(brightness_frame) brightness_slider.pack(side="right", padx=5, expand=True) def add_system_settings(self, frame): # Update Button update_button = ctk.CTkButton( frame, text="Nach Updates suchen", fg_color="transparent", border_width=1 ) update_button.pack(padx=20, pady=5) def hide_settings(self): if self.settings_panel: self.settings_panel.destroy() self.settings_visible = False if __name__ == "__main__": app = ctk.CTk() settings_menu = SettingsMenu(app) app.mainloop()
Editor is loading...
Leave a Comment