You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.9 KiB
Python
83 lines
2.9 KiB
Python
from customtkinter import *
|
|
from CTkTable import *
|
|
from PIL import Image
|
|
|
|
import sideframe, frame_dashboard, frame_edit, frame_table, frame_users, window_settings
|
|
|
|
# Links
|
|
# - Icons: https://www.flaticon.com
|
|
# - CustomTkinter: https://customtkinter.tomschimansky.com/
|
|
# - CTkTable: https://github.com/Akascape/CTkTable
|
|
|
|
# Referenzen
|
|
# - Vorlage: https://github.com/RoyChng/customtkinter-examples/tree/master/Inventory%20Management
|
|
|
|
mainColor = "#C03F49"
|
|
contrastColor = "#8F2F3E"
|
|
|
|
set_appearance_mode("light")
|
|
|
|
|
|
|
|
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()
|
|
|