from customtkinter import * from CTkTable import * from PIL import Image import sideframe, frame_dashboard, frame_edit, frame_table, frame_users, window_settings mainColor = "#C03F49" contrastColor = "#8F2F3E" 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) sideframe.create(self) 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) self.lastWindow = None self.lastButton = None self.initiate_frame(1) def initiate_frame(self,windowNumber): if(windowNumber!=self.lastWindow): self.updateButton(windowNumber) self.clear_frame() if(windowNumber==1): frame_dashboard.create(self) elif(windowNumber==2): frame_edit.create(self) elif(windowNumber==3): frame_table.create(self) elif(windowNumber==4): frame_users.create(self) self.lastWindow = windowNumber def updateButton(self,buttonNumber): buttons = [self.button1,self.button2,self.button3,self.button4] img = [self.img_dashboard,self.img_edit,self.img_table,self.img_users] img_red = [self.img_dashboard_red,self.img_edit_red,self.img_table_red,self.img_users_red] buttons[buttonNumber-1].configure(fg_color="#fff", hover_color="#eee",text_color=mainColor,image=img_red[buttonNumber-1]) if(self.lastButton != None): buttons[self.lastButton-1].configure(fg_color="transparent", hover_color=contrastColor, text_color="#fff",image=img[self.lastButton-1]) self.lastButton = buttonNumber def open_window_settings(self): # Einstellungen if self.window_settings is None or not self.window_settings.winfo_exists(): self.window_settings = window_settings.Window_Settings(self) # create window if its None or destroyed else: self.window_settings.focus() # if window exists focus it def clear_frame(self): for widget in self.main_container.winfo_children(): widget.destroy() app = Main_Window() app.mainloop()