Судя по вашему описанию, кажется, что проблема заключается в том, как вы используете и инициализируете класс `RightMenu`. Чекбокс может не обновляться должным образом. Давайте посмотрим на некоторые возможные причины и как это можно исправить.
### Одной из возможных причин может быть порядок инициализации виджетов:
Когда вы создаете экземпляр `RightMenu` в `BottomMenu`, вам нужно убедиться, что он правильно отображается на экране и что состояние чекбокса обновляется в реальном времени. Убедитесь, что после создания экземпляра `RightMenu` он добавлен на экран и отображается. Возможно, вы забыли вызвать метод `pack()` или другие настройки для отображения виджетов.
### Попробуйте выполнить следующее:
1. Убедитесь, что вы добавили `RightMenu` в `BottomMenu` с помощью метода `pack` или `grid`:
```python
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)
self.right_menu.pack(side="right", fill="y") # добавьте pack или grid для отображения
```
2. Проверьте, нет ли других частей кода, которые могут сбрасывать состояние чекбокса или переинициализировать `RightMenu`.
3. Убедитесь, что вы вызываете `get_effects()` после того, как пользователь взаимодействует с чекбоксом. Например, необходимо вызывать этот метод в ответ на событие, например, по нажатию кнопки:
```python
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)
self.right_menu.pack(side="right", fill="y")
# Например, создайте кнопку, которая вызывает on_apply_changes_click при нажатии
apply_button = ctk.CTkButton(self, text="Apply Changes", command=self.on_apply_changes_click)
apply_button.pack(pady=10)
def on_apply_changes_click(self):
checkbox_value = self.right_menu.get_effects()
print(f"Чекбокс значение: {checkbox_value}")
```
### Если все эти моменты учтены:
Если все вышеперечисленные шаги выполнены, и чекбокс по-прежнему не работает правильно, попробуйте добавить отладочные сообщения, чтобы понять, когда именно вызывается метод `get_effects()` и какая версия состояния чекбокса у него в этот момент.
Таким образом, вы сможете более точно установить, в чем заключается проблема.