Content Window erstellt
parent
3e372ec0d7
commit
c41a58db14
@ -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()
|
||||
|
||||
|
||||
Loading…
Reference in New Issue