Fenster und Frames in externe Dateien abgelegt

main
bgoergen 2 years ago
parent 1d41505e67
commit 174c72bac0

@ -2,6 +2,9 @@ from customtkinter import *
from CTkTable import * from CTkTable import *
from PIL import Image from PIL import Image
mainColor = "#C03F49"
contrastColor = "#8F2F3E"
def create(self): def create(self):
self.buttonTest = CTkButton(master=self.main_container, text="Dashboard", fg_color=contrastColor, font=("Arial Bold", 14), hover_color=mainColor, anchor="center") self.buttonTest = CTkButton(master=self.main_container, text="Dashboard", fg_color=contrastColor, font=("Arial Bold", 14), hover_color=mainColor, anchor="center")
self.buttonTest.pack(padx=5, pady=5,expand=True) self.buttonTest.pack(padx=5, pady=5,expand=True)

@ -0,0 +1,10 @@
from customtkinter import *
from CTkTable import *
from PIL import Image
mainColor = "#C03F49"
contrastColor = "#8F2F3E"
def create(self):
self.buttonTest = CTkButton(master=self.main_container, text="Eintragen", fg_color=contrastColor, font=("Arial Bold", 14), hover_color=mainColor, anchor="center")
self.buttonTest.pack(padx=5, pady=5,expand=True)

@ -0,0 +1,10 @@
from customtkinter import *
from CTkTable import *
from PIL import Image
mainColor = "#C03F49"
contrastColor = "#8F2F3E"
def create(self):
self.buttonTest = CTkButton(master=self.main_container, text="Sportler", fg_color=contrastColor, font=("Arial Bold", 14), hover_color=mainColor, anchor="center")
self.buttonTest.pack(padx=5, pady=5,expand=True)

@ -1,9 +1,8 @@
from customtkinter import * from customtkinter import *
from CTkTable import * from CTkTable import *
from PIL import Image from PIL import Image
import frame_table
import frame_dashboard import sideframe, frame_dashboard, frame_edit, frame_table, frame_users, window_settings
import colors
# Links # Links
# - Icons: https://www.flaticon.com # - Icons: https://www.flaticon.com
@ -13,34 +12,12 @@ import colors
# Referenzen # Referenzen
# - Vorlage: https://github.com/RoyChng/customtkinter-examples/tree/master/Inventory%20Management # - Vorlage: https://github.com/RoyChng/customtkinter-examples/tree/master/Inventory%20Management
mainColor = "#C03F49"
contrastColor = "#8F2F3E"
set_appearance_mode("light")
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): class Main_Window(CTk):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@ -53,49 +30,7 @@ class Main_Window(CTk):
self.geometry("%dx%d" % (self.height*16/9*self.downSized, self.height*self.downSized)) self.geometry("%dx%d" % (self.height*16/9*self.downSized, self.height*self.downSized))
set_widget_scaling(self.scale*self.downSized) set_widget_scaling(self.scale*self.downSized)
self.sidebar_frame = CTkFrame(master=self, fg_color=colors.mainColor, width=176, corner_radius=10*self.scale, bg_color="transparent") sideframe.create(self)
self.sidebar_frame.pack(fill=Y,side=LEFT,anchor="w",padx=5, pady=5)
self.img = [Image.open("img/logo_running.png"),
Image.open("img/icons/analytics_white.png"),
Image.open("img/icons/pen_white.png"),
Image.open("img/icons/table_white.png"),
Image.open("img/icons/group_white.png"),
Image.open("img/icons/settings_white.png")]
self.img_red = [Image.open("img/icons/analytics_red.png"),
Image.open("img/icons/pen_red.png"),
Image.open("img/icons/table_red.png"),
Image.open("img/icons/group_red.png")]
self.img_logo = CTkImage(dark_image=self.img[0], light_image=self.img[0], 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=self.img[1], light_image=self.img[1])
self.img_dashboard_red = CTkImage(dark_image=self.img_red[0], light_image=self.img_red[0])
self.button1 = CTkButton(master=self.sidebar_frame, image=self.img_dashboard, text="Dashboard", text_color="#fff", fg_color="transparent", font=("Arial Bold", 14), hover_color=colors.contrastColor, anchor="w", command=lambda: self.initiate_window(1))
self.button1.pack(padx=5, pady=5)
self.img_edit = CTkImage(dark_image=self.img[2], light_image=self.img[2])
self.img_edit_red = CTkImage(dark_image=self.img_red[1], light_image=self.img_red[1])
self.button2 = CTkButton(master=self.sidebar_frame, image=self.img_edit, text="Eintragen", text_color="#fff", fg_color="transparent", font=("Arial Bold", 14), hover_color=colors.contrastColor, anchor="w", command=lambda: self.initiate_window(2))
self.button2.pack(padx=5, pady=5)
self.img_table = CTkImage(dark_image=self.img[3], light_image=self.img[3])
self.img_table_red = CTkImage(dark_image=self.img_red[2], light_image=self.img_red[2])
self.button3 = CTkButton(master=self.sidebar_frame, image=self.img_table, text="Werte", text_color="#fff", fg_color="transparent", font=("Arial Bold", 14), hover_color=colors.contrastColor, anchor="w", command=lambda: self.initiate_window(3))
self.button3.pack(padx=5, pady=5)
self.img_users = CTkImage(dark_image=self.img[4], light_image=self.img[4])
self.img_users_red = CTkImage(dark_image=self.img_red[3], light_image=self.img_red[3])
self.button4 = CTkButton(master=self.sidebar_frame, image=self.img_users, text="Sportler", text_color="#fff", fg_color="transparent", font=("Arial Bold", 14), hover_color=colors.contrastColor, anchor="w", command=lambda: self.initiate_window(4))
self.button4.pack(padx=5, pady=5)
self.img_settings = CTkImage(dark_image=self.img[5], light_image=self.img[5])
self.button5 = CTkButton(master=self.sidebar_frame, image=self.img_settings, text="Einstellungen", text_color="#fff", fg_color="transparent", font=("Arial Bold", 14), hover_color=colors.contrastColor, anchor="w", command=self.open_window_settings)
self.button5.pack(padx=10, pady=10,side=BOTTOM)
self.window_settings = None self.window_settings = None
@ -104,9 +39,9 @@ class Main_Window(CTk):
self.lastWindow = None self.lastWindow = None
self.lastButton = None self.lastButton = None
self.initiate_window(3) self.initiate_frame(1)
def initiate_window(self,windowNumber): def initiate_frame(self,windowNumber):
if(windowNumber!=self.lastWindow): if(windowNumber!=self.lastWindow):
self.updateButton(windowNumber) self.updateButton(windowNumber)
self.clear_frame() self.clear_frame()
@ -114,11 +49,11 @@ class Main_Window(CTk):
if(windowNumber==1): if(windowNumber==1):
frame_dashboard.create(self) frame_dashboard.create(self)
elif(windowNumber==2): elif(windowNumber==2):
self.window_2() frame_edit.create(self)
elif(windowNumber==3): elif(windowNumber==3):
frame_table.create(self) frame_table.create(self)
elif(windowNumber==4): elif(windowNumber==4):
self.window_4() frame_users.create(self)
self.lastWindow = windowNumber self.lastWindow = windowNumber
@ -127,24 +62,14 @@ class Main_Window(CTk):
img = [self.img_dashboard,self.img_edit,self.img_table,self.img_users] 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] 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=colors.mainColor,image=img_red[buttonNumber-1]) buttons[buttonNumber-1].configure(fg_color="#fff", hover_color="#eee",text_color=mainColor,image=img_red[buttonNumber-1])
if(self.lastButton != None): if(self.lastButton != None):
buttons[self.lastButton-1].configure(fg_color="transparent", hover_color=colors.contrastColor, text_color="#fff",image=img[self.lastButton-1]) buttons[self.lastButton-1].configure(fg_color="transparent", hover_color=contrastColor, text_color="#fff",image=img[self.lastButton-1])
self.lastButton = buttonNumber self.lastButton = buttonNumber
def window_2(self): # Eintragen
self.buttonTest = CTkButton(master=self.main_container, text="Eintragen", fg_color=colors.contrastColor, font=("Arial Bold", 14), hover_color=colors.mainColor, anchor="center")
self.buttonTest.pack(padx=5, pady=5,expand=True)
def window_4(self): # Sportler
self.buttonTest = CTkButton(master=self.main_container, text="Sportler", fg_color=colors.contrastColor, font=("Arial Bold", 14), hover_color=colors.mainColor, anchor="center")
self.buttonTest.pack(padx=5, pady=5,expand=True)
def open_window_settings(self): # Einstellungen def open_window_settings(self): # Einstellungen
if self.window_settings is None or not self.window_settings.winfo_exists(): 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 self.window_settings = window_settings.Window_Settings(self) # create window if its None or destroyed
else: else:
self.window_settings.focus() # if window exists focus it self.window_settings.focus() # if window exists focus it
@ -152,11 +77,6 @@ class Main_Window(CTk):
for widget in self.main_container.winfo_children(): for widget in self.main_container.winfo_children():
widget.destroy() widget.destroy()
app = Main_Window() app = Main_Window()
app.mainloop() app.mainloop()

@ -0,0 +1,51 @@
from customtkinter import *
from CTkTable import *
from PIL import Image
mainColor = "#C03F49"
contrastColor = "#8F2F3E"
def create(self):
self.sidebar_frame = CTkFrame(master=self, fg_color=mainColor, width=176, corner_radius=10*self.scale, bg_color="transparent")
self.sidebar_frame.pack(fill=Y,side=LEFT,anchor="w",padx=5, pady=5)
self.img = [Image.open("img/logo_running.png"),
Image.open("img/icons/analytics_white.png"),
Image.open("img/icons/pen_white.png"),
Image.open("img/icons/table_white.png"),
Image.open("img/icons/group_white.png"),
Image.open("img/icons/settings_white.png")]
self.img_red = [Image.open("img/icons/analytics_red.png"),
Image.open("img/icons/pen_red.png"),
Image.open("img/icons/table_red.png"),
Image.open("img/icons/group_red.png")]
self.img_logo = CTkImage(dark_image=self.img[0], light_image=self.img[0], 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=self.img[1], light_image=self.img[1])
self.img_dashboard_red = CTkImage(dark_image=self.img_red[0], light_image=self.img_red[0])
self.button1 = CTkButton(master=self.sidebar_frame, image=self.img_dashboard, text="Dashboard", text_color="#fff", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w", command=lambda: self.initiate_frame(1))
self.button1.pack(padx=5, pady=5)
self.img_edit = CTkImage(dark_image=self.img[2], light_image=self.img[2])
self.img_edit_red = CTkImage(dark_image=self.img_red[1], light_image=self.img_red[1])
self.button2 = CTkButton(master=self.sidebar_frame, image=self.img_edit, text="Eintragen", text_color="#fff", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w", command=lambda: self.initiate_frame(2))
self.button2.pack(padx=5, pady=5)
self.img_table = CTkImage(dark_image=self.img[3], light_image=self.img[3])
self.img_table_red = CTkImage(dark_image=self.img_red[2], light_image=self.img_red[2])
self.button3 = CTkButton(master=self.sidebar_frame, image=self.img_table, text="Werte", text_color="#fff", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w", command=lambda: self.initiate_frame(3))
self.button3.pack(padx=5, pady=5)
self.img_users = CTkImage(dark_image=self.img[4], light_image=self.img[4])
self.img_users_red = CTkImage(dark_image=self.img_red[3], light_image=self.img_red[3])
self.button4 = CTkButton(master=self.sidebar_frame, image=self.img_users, text="Sportler", text_color="#fff", fg_color="transparent", font=("Arial Bold", 14), hover_color=contrastColor, anchor="w", command=lambda: self.initiate_frame(4))
self.button4.pack(padx=5, pady=5)
self.img_settings = CTkImage(dark_image=self.img[5], light_image=self.img[5])
self.button5 = CTkButton(master=self.sidebar_frame, image=self.img_settings, text="Einstellungen", text_color="#fff", 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)

@ -0,0 +1,31 @@
from customtkinter import *
from CTkTable import *
from PIL import Image
mainColor = "#C03F49"
contrastColor = "#8F2F3E"
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")
Loading…
Cancel
Save