【问题标题】:Kivy Error: No Screen with NameKivy 错误:没有名称的屏幕
【发布时间】:2018-01-17 01:17:26
【问题描述】:

我在一个 Kivy ScreenManager 中设置了一个 Screen(myScreen 只是一个继承 Screen 的类)

class firstScreen(myScreen):
    def __init__(self,**kwargs):
        super(firstScreen, self).__init__(**kwargs)
        self.name = "first"
        self.add_widget(Button(on_release = switchScreens("second")))

我还设置了第二个屏幕:

class secondScreen(myScreen):
    def __init__(self,**kwargs):
        super(secondScreen, self).__init__(**kwargs)
        self.name = "second"

然后我设置我的 ScreenManager:

sm = ScreenManager()
sm.add_widget(firstScreen())
sm.add_widget(secondScreen())

这里是 switchScreens 的代码:

def switchScreens(next):
    sm.current = next

当我运行 sm 时,出现以下错误:

kivy.uix.screenmanager.ScreenManagerException: 没有名称为“second”的屏幕。

这对我来说似乎是错误的,因为我将 secondScreen() 添加到 sm,名称为“second”。

如何获取 firstScreen 上的 Button 以将应用正确发送到 secondScreen?

【问题讨论】:

    标签: python kivy kivy-language


    【解决方案1】:

    在这里定义名称,而不是屏幕类:

    sm = ScreenManager()
    sm.add_widget(firstScreen())
    sm.add_widget(secondScreen())
    

    上面应该是:

    sm = ScreenManager()
    sm.add_widget(firstScreen(name="first"))
    sm.add_widget(secondScreen(name="second"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 2020-12-27
      相关资源
      最近更新 更多