使用Kivy从类继承变量

时间:2019-08-13 14:41:15

标签: python-3.x kivy kivy-language

我有一个ScreenManagement和其中的几个继承Screen类的类。

enter image description here

每个类都具有在其中依次声明变量的方法。与程序交互时会更改的一种此类变量是登录变量。如何从图像上的任何类访问这些类中的任何变量?

这是我的MainProgram类,具有登录变量:

enter image description here

如何从具有相同类结构的MessagePage类中的MainProgram类获取和使用登录变量? 换句话说,我需要以某种方式在程序的所有页面之间传递变量。

1 个答案:

答案 0 :(得分:1)

  1. id: main_program添加到MainProgram:的实例化子对象(ScreenManagement:)中,以便您可以引用在MainProgram类中声明的所有属性
  2. 要从login访问MainProgram中的MessagePage属性,请在kv文件中使用root.manager.ids.main_program.login。在Python代码中使用self.manager.ids.main_program.login
  3. 添加导入语句from kivy.properties import StringProperty
  4. 在类MainProgram中声明一个类属性login = StringProperty('')

摘要-kv文件

ScreenManagement:
    RegistrationPage:
    PageOne:
    MainProgram:
        id: main_program
    MessagePage:

代码段-py文件

from kivy.properties import StringProperty

...

class MainProgram(Screen):
    login = StringProperty('')
    ...