import customtkinter class MyTabView(customtkinter.CTkTabview): def __init__(self, master, **kwargs): super().__init__(master, **kwargs) # create tabs self.add("tab 1") self.add("tab 2") # add widgets on tabs self.label = customtkinter.CTkLabel(master=self.tab("tab 1")) self.label.grid(row=0, column=0, padx=20, pady=10) class App(customtkinter.CTk): def __init__(self): super().__init__() self.geometry("1466x642") self.title("Dreckshub") # add widgets to app self.button = customtkinter.CTkButton(self, command=self.button_click) self.button.grid(row=0, column=0, padx=20, pady=10) # Slider Menu, will be dynamic per device self.slider0 = customtkinter.CTkSlider(self, from_=0, to=100, height=470, number_of_steps=100, width=20, orientation="vertical", command=self.slider_event) self.slider0.grid(row=0, column=3, padx=20, pady=10) self.slider0.set(0) self.entry0 = customtkinter.CTkEntry(self, placeholder_text="Slider0") self.slider1 = customtkinter.CTkSlider(self, from_=0, to=100, height=470, number_of_steps=100, width=20, orientation="vertical", command=self.slider_event) self.slider1.grid(row=0, column=4, padx=20, pady=10) self.slider1.set(0) self.entry1 = customtkinter.CTkEntry(self, placeholder_text="Slider1") self.slider2 = customtkinter.CTkSlider(self, from_=0, to=100, height=470, number_of_steps=100, width=20, orientation="vertical", command=self.slider_event) self.slider2.grid(row=0, column=5, padx=20, pady=10) self.slider2.set(0) self.entry2 = customtkinter.CTkEntry(self, placeholder_text="Slider2") # add methods to app def button_click(self): print("button click") def slider_event(self, value): slider0 = self.slider0.get() / 100 slider1 = self.slider1.get() / 100 slider2 = self.slider2.get() / 100 #format = self.slider0.get() + " | " + self.slider1.get() + " | " + self.slider2.get() print(str(slider0) + " | " + str(slider1) + " | " + str(slider2)) app = App() app.mainloop() # #import customtkinter as ctk # #class MyTabView(ctk.CTkTabview): # def __init__(self, master, **kwargs): # super().__init__(master, **kwargs) # # # create tabs # self.add("tab 1") # self.add("tab 2") # # # add widgets on tabs # self.label = ctk.CTkLabel(master=self.tab("tab 1"), text="Hello from Tab 1") # self.label.grid(row=0, column=0, padx=20, pady=10) # #class App(ctk.CTk): # def __init__(self): # super().__init__() # self.geometry("1466x642") # self.title("Dreckshub") # # # --------------------------- # # Device List / Sidebar Setup # # --------------------------- # self.devices = ["Device 1"] # Initial connected device # self.MAX_DEVICES = 5 # self.pages = {} # Pages for each device # # self.sidebar = ctk.CTkFrame(self, width=150) # self.sidebar.grid(row=0, column=0, rowspan=6, sticky="ns", padx=10, pady=10) # # # Content frame for device pages # self.device_content = ctk.CTkFrame(self) # self.device_content.grid(row=0, column=1, rowspan=6, sticky="nsew", padx=10, pady=10) # # # Configure grid weights for proper expansion # self.grid_columnconfigure(1, weight=1) # self.grid_rowconfigure(0, weight=1) # # self.refresh_sidebar() # # # --------------------------- # # Other Widgets # # --------------------------- # self.button = ctk.CTkButton(self, text="Button", command=self.button_click) # self.button.grid(row=0, column=2, padx=20, pady=10) # # # Sliders # self.slider0 = ctk.CTkSlider(self, from_=0, to=100, height=470, number_of_steps=100, width=20, orientation="vertical", command=self.slider_event) # self.slider0.grid(row=0, column=3, padx=20, pady=10) # self.slider0.set(0) # # self.slider1 = ctk.CTkSlider(self, from_=0, to=100, height=470, number_of_steps=100, width=20, orientation="vertical", command=self.slider_event) # self.slider1.grid(row=0, column=4, padx=20, pady=10) # self.slider1.set(0) # # self.slider2 = ctk.CTkSlider(self, from_=0, to=100, height=470, number_of_steps=100, width=20, orientation="vertical", command=self.slider_event) # self.slider2.grid(row=0, column=5, padx=20, pady=10) # self.slider2.set(0) # # # TabView # self.tab_view = MyTabView(master=self) # self.tab_view.grid(row=1, column=2, padx=20, pady=20, columnspan=1) # # # --------------------------- # # Device Sidebar Methods # # --------------------------- # def refresh_sidebar(self): # # Clear existing sidebar buttons # for widget in self.sidebar.winfo_children(): # widget.destroy() # # # Add a button for each device # for device in self.devices: # if device not in self.pages: # page = ctk.CTkFrame(self.device_content) # page.place(relwidth=1, relheight=1) # label = ctk.CTkLabel(page, text=f"Settings for {device}") # label.pack(padx=20, pady=20) # self.pages[device] = page # # ctk.CTkButton( # self.sidebar, # text=device, # command=lambda d=device: self.show_device_page(d) # ).pack(pady=5, fill="x") # # # Add "+ Add Device" button if max devices not reached # if len(self.devices) < self.MAX_DEVICES: # ctk.CTkButton( # self.sidebar, # text="+ Add Device", # fg_color="green", # hover_color="lightgreen", # command=self.add_device # ).pack(pady=20, fill="x") # # # Show first device page by default # if self.devices: # self.show_device_page(self.devices[0]) # # def show_device_page(self, device_name): # for page in self.pages.values(): # page.lower() # self.pages[device_name].lift() # # def add_device(self): # new_device_name = f"Device {len(self.devices)+1}" # self.devices.append(new_device_name) # self.refresh_sidebar() # self.show_device_page(new_device_name) # # # --------------------------- # # Other Methods # # --------------------------- # def button_click(self): # print("button click") # # def slider_event(self, value): # slider0 = self.slider0.get() / 100 # slider1 = self.slider1.get() / 100 # slider2 = self.slider2.get() / 100 # print(str(slider0) + " | " + str(slider1) + " | " + str(slider2)) # ## Run the app #app = App() #app.mainloop() #