diff --git a/Programm/main.py b/Programm/main.py index 3cf86ac..be4b000 100644 --- a/Programm/main.py +++ b/Programm/main.py @@ -1,93 +1,96 @@ -from customtkinter import * -from CTkTable import CTkTable -from PIL import Image - -# Links -# - Icons: https://www.flaticon.com -# - CustomTkinter: https://customtkinter.tomschimansky.com/ - -# Referenzen -# - Vorlage: https://github.com/RoyChng/customtkinter-examples/tree/master/Inventory%20Management - -mainColor = "#C03F49" -contrastColor = "#8F2F3E" - -set_appearance_mode("light") # Bei Änderung muss "text" von Window_Settings/button_appearance ebenfalls geändert werden! - -class Window_Settings(CTkToplevel): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - self.downSized = 0.5 - self.geometry("%dx%d" % (self.master.height*16/9*self.downSized, self.master.height*self.downSized)) - self.title("Einstellungen") - - self.frame_appearance = CTkFrame(master=self) - self.frame_appearance.pack(expand=True) - - self.label = CTkLabel(self.frame_appearance, text="Erscheinung") - self.label.pack(padx=5, pady=5) - - self.img_appearance = CTkImage(dark_image=Image.open("img/icons/moon_black.png"), light_image=Image.open("img/icons/sun_white.png")) - self.button_appearance = CTkButton(master=self.frame_appearance, image=self.img_appearance, text="Hell", text_color =("White","Black"),fg_color=("Black","White"), font=("Arial Bold", 14), hover_color=("#1A1A1A","#E6E6E6"), anchor="w",command=self.toggleAppearance) - self.button_appearance.pack(padx=5, pady=5) - - def toggleAppearance(self): - if(get_appearance_mode()=="Dark"): - self.button_appearance.configure(text="Hell") - set_appearance_mode("light") - else: - self.button_appearance.configure(text="Dunkel") - set_appearance_mode("dark") - -class Main_Window(CTk): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - self.title("Bundesjugendspiele-GUI") - self.height= self.winfo_screenheight() - self.scale = self.height/720 - self.downSized = 0.8 - self.geometry("%dx%d" % (self.height*16/9*self.downSized, self.height*self.downSized)) - set_widget_scaling(self.scale*self.downSized) - - self.sidebar_frame = CTkFrame(master=self, fg_color=mainColor, width=176, corner_radius=10, bg_color="transparent") - self.sidebar_frame.pack(fill=Y,side=LEFT,anchor="w",padx=5, pady=5) - - - self.img_logo = CTkImage(dark_image=Image.open("img/logo_running.png"), light_image=Image.open("img/logo_running.png"), size=(100,100)) - self.logo = CTkLabel(master=self.sidebar_frame, text="", image=self.img_logo) - self.logo.pack(padx=5, pady=20) - - self.img_dashboard = CTkImage(dark_image=Image.open("img/icons/analytics_white.png"), light_image=Image.open("img/icons/analytics_white.png")) - self.button1 = CTkButton(master=self.sidebar_frame, image=self.img_dashboard, text="Dashboard", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w") - self.button1.pack(padx=5, pady=5) - - self.img_edit = CTkImage(dark_image=Image.open("img/icons/pen_white.png"), light_image=Image.open("img/icons/pen_white.png")) - self.button2 = CTkButton(master=self.sidebar_frame, image=self.img_edit, text="Eintragen", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w") - self.button2.pack(padx=5, pady=5) - - - self.img_table = CTkImage(dark_image=Image.open("img/icons/table_white.png"), light_image=Image.open("img/icons/table_white.png")) - self.button3 = CTkButton(master=self.sidebar_frame, image=self.img_table, text="Werte", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w") - self.button3.pack(padx=5, pady=5) - - self.img_users = CTkImage(dark_image=Image.open("img/icons/group_white.png"), light_image=Image.open("img/icons/group_white.png")) - self.button4 = CTkButton(master=self.sidebar_frame, image=self.img_users, text="Sportler", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w") - self.button4.pack(padx=5, pady=5) - - self.img_settings = CTkImage(dark_image=Image.open("img/icons/settings_white.png"), light_image=Image.open("img/icons/settings_white.png")) - self.button5 = CTkButton(master=self.sidebar_frame, image=self.img_settings, text="Einstellungen", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w", command=self.open_window_settings) - self.button5.pack(padx=10, pady=10,side=BOTTOM) - - self.window_settings = None - - def open_window_settings(self): - if self.window_settings is None or not self.window_settings.winfo_exists(): - self.window_settings = Window_Settings(self) # create window if its None or destroyed - else: - self.window_settings.focus() # if window exists focus it - -app = Main_Window() - -app.mainloop() +from customtkinter import * +from PIL import Image + +# Links +# - Icons: https://www.flaticon.com +# - CustomTkinter: https://customtkinter.tomschimansky.com/ + +# Referenzen +# - Vorlage: https://github.com/RoyChng/customtkinter-examples/tree/master/Inventory%20Management + +mainColor = "#C03F49" +contrastColor = "#8F2F3E" + +set_appearance_mode("light") # Bei Änderung muss "text" von Window_Settings/button_appearance ebenfalls geändert werden! + +class Window_Settings(CTkToplevel): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.downSized = 0.5 + self.geometry("%dx%d" % (self.master.height*16/9*self.downSized, self.master.height*self.downSized)) + self.title("Einstellungen") + + self.frame_appearance = CTkFrame(master=self) + self.frame_appearance.pack(expand=True) + + self.label = CTkLabel(self.frame_appearance, text="Erscheinung") + self.label.pack(padx=5, pady=5) + + self.img_appearance = CTkImage(dark_image=Image.open("img/icons/moon_black.png"), light_image=Image.open("img/icons/sun_white.png")) + self.button_appearance = CTkButton(master=self.frame_appearance, image=self.img_appearance, text="Hell", text_color =("White","Black"),fg_color=("Black","White"), font=("Arial Bold", 14), hover_color=("#1A1A1A","#E6E6E6"), anchor="w",command=self.toggleAppearance) + self.button_appearance.pack(padx=5, pady=5) + + def toggleAppearance(self): + if(get_appearance_mode()=="Dark"): + self.button_appearance.configure(text="Hell") + set_appearance_mode("light") + else: + self.button_appearance.configure(text="Dunkel") + set_appearance_mode("dark") + +class Main_Window(CTk): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.title("Bundesjugendspiele-GUI") + self.height= self.winfo_screenheight() + self.scale = self.height/720 + self.downSized = 0.8 + self.geometry("%dx%d" % (self.height*16/9*self.downSized, self.height*self.downSized)) + set_widget_scaling(self.scale*self.downSized) + + self.sidebar_frame = CTkFrame(master=self, fg_color=mainColor, width=176, corner_radius=10, bg_color="transparent") + self.sidebar_frame.pack(fill=Y,side=LEFT,anchor="w",padx=5, pady=5) + + + self.img_logo = CTkImage(dark_image=Image.open("img/logo_running.png"), light_image=Image.open("img/logo_running.png"), size=(100,100)) + self.logo = CTkLabel(master=self.sidebar_frame, text="", image=self.img_logo) + self.logo.pack(padx=5, pady=20) + + self.img_dashboard = CTkImage(dark_image=Image.open("img/icons/analytics_white.png"), light_image=Image.open("img/icons/analytics_white.png")) + self.button1 = CTkButton(master=self.sidebar_frame, image=self.img_dashboard, text="Dashboard", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w") + self.button1.pack(padx=5, pady=5) + + self.img_edit = CTkImage(dark_image=Image.open("img/icons/pen_white.png"), light_image=Image.open("img/icons/pen_white.png")) + self.button2 = CTkButton(master=self.sidebar_frame, image=self.img_edit, text="Eintragen", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w") + self.button2.pack(padx=5, pady=5) + + + self.img_table = CTkImage(dark_image=Image.open("img/icons/table_white.png"), light_image=Image.open("img/icons/table_white.png")) + self.button3 = CTkButton(master=self.sidebar_frame, image=self.img_table, text="Werte", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w") + self.button3.pack(padx=5, pady=5) + + self.img_users = CTkImage(dark_image=Image.open("img/icons/group_white.png"), light_image=Image.open("img/icons/group_white.png")) + self.button4 = CTkButton(master=self.sidebar_frame, image=self.img_users, text="Sportler", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w") + self.button4.pack(padx=5, pady=5) + + self.img_settings = CTkImage(dark_image=Image.open("img/icons/settings_white.png"), light_image=Image.open("img/icons/settings_white.png")) + self.button5 = CTkButton(master=self.sidebar_frame, image=self.img_settings, text="Einstellungen", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w", command=self.open_window_settings) + self.button5.pack(padx=10, pady=10,side=BOTTOM) + + self.window_settings = None + + self.main_container = CTkFrame(self, corner_radius=10) + self.main_container.pack(fill=BOTH, expand=True, padx=(0,5), pady=5,side=RIGHT) + + + def open_window_settings(self): + if self.window_settings is None or not self.window_settings.winfo_exists(): + self.window_settings = Window_Settings(self) # create window if its None or destroyed + else: + self.window_settings.focus() # if window exists focus it + +app = Main_Window() + +app.mainloop() +