class RightMenu(ctk.CTkFrame):
def __init__(self, master, *args, **kwargs):
super().__init__(master, *args, **kwargs)
self.right_menu = ctk.CTkFrame(self, width=200, corner_radius=0, border_color="#242323", border_width=1)
self.right_menu.pack(side="right", fill="y", expand=False)
self.checkbox = ctk.CTkCheckBox(self.right_menu, text="Contrast", width=100, height=25, command=self.toggle_slider)
self.checkbox.pack(padx=10, pady=10, anchor="w")
def get_effects(self):
contrast = self.checkbox.get()
print(contrast)
return contrast
class BottomMenu(ctk.CTkFrame):
def __init__(self, master=None, start_video_callback=None, stop_video_callback=None):
super().__init__(master=master, corner_radius=0, height=100, border_color="#242323", border_width=1)
self.right_menu = RightMenu(self)
def on_apply_changes_click(self):
# Получаем значение слайдера контраста из RightMenu
checkbox_value = self.right_menu.get_effects()
print(f"Текущее значение чекбокса: {checkbox_value}")
# main.py
import customtkinter as ctk
from right_menu import RightMenu
from bottom_menu import BottomMenu
def main():
root = ctk.CTk()
root.geometry("600x400")
root.title("Demo передачи значения между меню")
right = RightMenu(root)
right.pack(side="right", fill="y")
bottom = BottomMenu(root, right_menu=right)
bottom.pack(side="bottom", fill="x")
root.mainloop()
if __name__ == "__main__":
main()
# right_menu.py
import customtkinter as ctk
class RightMenu(ctk.CTkFrame):
def __init__(self, master, **kwargs):
super().__init__(master, **kwargs)
self.right_menu = ctk.CTkFrame(self,
width=200,
corner_radius=0,
border_color="#242323",
border_width=1)
self.right_menu.pack(side="right", fill="y")
self.checkbox = ctk.CTkCheckBox(
self.right_menu,
text="Contrast",
width=100,
height=25,
command=self.toggle_slider
)
self.checkbox.pack(padx=10, pady=10, anchor="w")
def toggle_slider(self):
print("Checkbox toggled, now:", self.checkbox.get())
def get_effects(self):
"""
Возвращает текущее состояние чекбокса:
1 — включён; 0 — выключен.
"""
return self.checkbox.get()
# bottom_menu.py
import customtkinter as ctk
class BottomMenu(ctk.CTkFrame):
def __init__(self, master, right_menu, **kwargs):
super().__init__(master, corner_radius=0, height=100,
border_color="#242323", border_width=1, **kwargs)
self.right_menu = right_menu
apply_btn = ctk.CTkButton(
self,
text="Применить",
command=self.on_apply_changes_click
)
apply_btn.pack(padx=10, pady=10, anchor="e")
def on_apply_changes_click(self):
checkbox_value = self.right_menu.get_effects()
print(f"Текущее состояние чекбокса Contrast: {checkbox_value}")