【问题标题】:Kivy Python: Pass variable and instance from class(screen) to another class(screen)Kivy Python:将变量和实例从类(屏幕)传递到另一个类(屏幕)
【发布时间】: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


【解决方案1】:

我的错是我在 '''def init(self, **kwargs):''' 中调用了信息值 但是我需要在以下位置调用信息值: ''' def on_enter(self, *larges): print(self.manager.get_screen('First').Info[6])'''

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 2022-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多