Kivymd ekran geçiş hatası

Kivymd de ekran geçişleri yapmaya çalışıyorum ama sınıflara Screen atayınca hata veriyor.
bir türlü hatayı bulamadım.

from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
Builder.load_string("""
<screen1>:
    FloatLayout:
        MDLabel:
            text: "screen1"
            size_hint: .3,.3
            pos_hint: {"center_x": .5, "center_y": .5}


<screen2>:
    FloatLayout:
        MDLabel:
            text: "screen2"
            size_hint: .3,.3
            pos_hint: {"center_x": .5, "center_y": .5}
""")

class screen1(Screen):
    pass

class screen2(Screen):
    pass

sm = ScreenManager()
sm.add_widget(screen1(name = "screen1"))
sm.add_widget(screen2(name = "screen2"))

class main(MDApp):
    def build(self):
        return sm
        
main().run()

Sebebini anlamamakla beraber şöyle yapınca kod çalışıyor:

from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
Builder.load_string("""
<screen1>:
    FloatLayout:
        MDLabel:
            text: "screen1"
            size_hint: .3,.3
            pos_hint: {"center_x": .5, "center_y": .5}


<screen2>:
    FloatLayout:
        MDLabel:
            text: "screen2"
            size_hint: .3,.3
            pos_hint: {"center_x": .5, "center_y": .5}
""")

class screen1(Screen, MDApp): # MDApp'i ekledim
    pass

class screen2(Screen, MDApp): # MDApp'i ekledim
    pass

sm = ScreenManager()
sm.add_widget(screen1(name = "screen1"))
sm.add_widget(screen2(name = "screen2"))

class main(MDApp):
    def build(self):
        return sm
        
main().run()
1 Beğeni

Cevap için teşekkür ederim. :slight_smile: Ufak bir sorum olucak, Kivymd oluşturulan widgetler veya textler her çeşit ekran için kendisi mi ayarlıyor yoksa biz mi ayarlıyoruz?