从一个屏幕移动到另一个屏幕会生成RecursionError

时间:2017-10-09 20:49:39

标签: python kivy

我想创建一个带有按钮的应用程序,该按钮将调用另一个应用程序或此应用程序的其他部分。

例如:

我在主屏幕上,我可以选择查看报告,创建报告,管理报告等选项。我认为所有这些都是应用。

因此,我从Kivy的App类创建了两个子类,每个类都有自己的.kv文件。假设一个是主屏幕而另一个是另一个屏幕。

当我这样做时看起来它可以工作,但是当我调用第二个屏幕时,在控制台中我在控制台中出现以下错误:

  

RecursionError:比较超出最大递归深度

我该如何解决这个问题?

我的Main.py文件包含

from kivy.app import App


class ProbandoApp(App):
    pass


class TestApp(App):
    probando = ProbandoApp()

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

我每个班级都有.kv个文件。

我还有一个名为test.kv的文件,其中包含:

Widget:
    Button:
        id: btnTest
        text: 'Test'
        width: 100
        height: self.font_size * 2
        on_press: app.probando.run()

和一个名为probando.kv的文件,其中包含

Widget:
    Button:
        id: btnProbando
        text: 'Otra cosa mas para probar'

1 个答案:

答案 0 :(得分:0)

听起来你不想要多个应用程序,而是一个界面发生变化的应用程序。您可以通过切换小部件来完成此操作,ScreenManager为此提供了方便的API。