KivyMD ошибка в работе Menu (MDDropdownMenu) при нескольких экранах
При работе с одном экраном всё работает замечательно. Но когда пытаюсь добавить MDDropdownMenu на любой другой экран (то есть, когда добавляю ScreenManager и второй экран), то выдаёт:
AttributeError: 'super' object has no attribute '__getattr__'
Помогите, пожалуйста, разобраться и решить этот вопрос. Вот сам код:
from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.uix.menu import MDDropdownMenu
from kivy.uix.screenmanager import ScreenManager, Screen
kv = '''
ScreenManager:
FirstScreen:
SecondScreen:
<FirstScreen>
name: 'first'
MDRaisedButton:
id: button
text: "PRESS ME"
pos_hint: {"center_x": .5, "center_y": .5}
on_release: root.menu.open()
<SecondScreen>
name: 'second'
'''
class FirstScreen(Screen):
def __init__(self, **kwargs):
super().__init__(**kwargs)
menu_items = [{"text": f"Item {i}"} for i in range(5)]
self.menu = MDDropdownMenu(
caller=self.ids.button, items=menu_items, width_mult=4
)
self.menu.bind(on_release=self.menu_callback)
def menu_callback(self, instance_menu, instance_menu_item):
print(instance_menu, instance_menu_item)
class SecondScreen(Screen):
pass
class Test(MDApp):
def build(self):
screen = Builder.load_string(kv)
return screen
sm = ScreenManager()
sm.add_widget(FirstScreen(name='first'))
sm.add_widget(SecondScreen(name='second'))
Test().run()
А это ошибка:
Traceback (most recent call last):
File "kivy\properties.pyx", line 861, in kivy.properties.ObservableDict.__getattr__
KeyError: 'button'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/Igor/PycharmProjects/pythonProject1/test.py", line 45, in <module>
sm.add_widget(FirstScreen(name='first'))
File "C:/Users/Igor/PycharmProjects/pythonProject1/test.py", line 29, in __init__
caller=self.ids.button, items=menu_items, width_mult=4
File "kivy\properties.pyx", line 864, in kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'