kivy&python. ScreenManager, GridLayout и DropDown. AttributeError: 'super' object has no attribute '__getattr__'

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.screenmanager import ScreenManager, Screen


class MyScreenManager(ScreenManager):
    pass

class MyGridLayout(Screen):
    pass

class TestApp(App):
    def build(self):
        return MyScreenManager()

if __name__ == '__main__':
    TestApp().run()
#:kivy 1.10.1
#:import Factory kivy.factory.Factory

<MyScreenManager>:
    id: screenmanager
    MyGridLayout:

<CustomDropdown@DropDown>:
    id: dropdown
    on_select:
        app.root.ids.btn.text = '{}'.format(args[1])
        self.dismiss()

    Button:
        id: btn1
        text: 'option 1'
        size_hint_y: None
        height: '48dp'
        on_release:
            dropdown.select(btn1.text)

    Button:
        id: btn2
        text: 'option 2'
        size_hint_y: None
        height: '48dp'
        on_release:
            dropdown.select(btn2.text)

<MyGridLayout>:
    GridLayout:
        rows: 3
        id: main_win

        Button:
            id: btn
            text: 'Press'
            on_release: Factory.CustomDropdown().open(self)
            size_hint_y: None
            height: '48dp'

        BoxLayout:

AttributeError: 'super' object has no attribute 'getattr'

Без ScreenManager все работает( пример взят с интернета)

from kivy.app import App
from kivy.uix.gridlayout import GridLayout

class MyGridLayout(GridLayout):
    pass

class TestApp(App):
    def build(self):
        return MyGridLayout()

if __name__ == '__main__':
    TestApp().run()

Как я понимаю разница в наследовании класса MyGridLayout...


Ответы (0 шт):