189 lines
6.7 KiB
Python
189 lines
6.7 KiB
Python
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()
|
|
# |