【发布时间】:2021-01-18 22:04:45
【问题描述】:
当我在 Python 和 Kivy 应用程序中从一个屏幕传递到下一个屏幕时,我需要带一些变量或前一个实例“Self”。 例如,在我的代码中,我使用 Kivy 文件中的 FirstLayout(Screen) Info 变量,这没问题。 之后,我需要在 LoginId(Screen) 类中使用相同的变量 Info。 我不能,因为我不能通过新类中的前一个实例。我需要前一个实例“Self”来保持 .py 和 .kv 之间的通信
from kivymd.app import MDApp
from kivy.uix.widget import Widget
from kivy.uix.screenmanager import ScreenManager, Screen, SlideTransition
from kivy.core.window import Window
from kivy.properties import StringProperty, ListProperty
class FirstLayout(Screen):
Info = ListProperty([])
def check(self):
L = ['aa', 12]
self.manager.get_screen('First').Info = L
class LoginId(Screen):
#I need to obtain the Info Variable, I can't use FirstLayou.Info,
#I can't use FirstLayoutmanager.get_screen('First').Info
pass
class MainApp(MDApp):
def build(self):
manager = ScreenManager()
manager.add_widget(FirstLayout(name='First'))
manager.add_widget(LoginId(name='Login'))
return manager
if __name__ == "__main__":
MainApp().run()
【问题讨论】:
标签: python kivy instance screen self