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

问题描述:

我想用一个按钮来创建一个应用程序,该按钮将调用另一个应用程序或此应用程序的另一部分。从一个屏幕移动到另一个屏幕会生成RecursionError

例如:

我主屏幕,在这里我可以选择像查看报告的一些选项,创建报告,管理报告等,我认为所有这些是一个应用程序上。

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

当我这样做,它看起来像它的工作原理,但是当我打电话的第二个屏幕,在控制台中我得到以下错误在控制台:

RecursionError: maximum recursion depth exceeded in comparison

我该如何解决这个问题?

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' 

这听起来像你不希望多个应用程序文件,而是一个单一的应用程序其界面发生变化。你可以通过切换小部件来做到这一点,ScreenManager为此提供了一个方便的API。