使用kivy从类继承变量
Inheriting variables from classes with kivy
我有一个 ScreenManagement 和其中的几个 class 继承屏幕 class。
每个 class 都有依次声明变量的方法。当您与程序交互时会发生变化的变量之一是登录变量。如何从图像上的任何 class 访问这些 classes 中的任何变量?
这是我的 MainProgram class 登录变量:
如何在具有相同class结构的MessagePage class中获取和使用MainProgram class中的登录变量?
换句话说,我需要以某种方式在程序中的所有页面之间传递变量。
- 将
id: main_program
添加到 ScreenManagement:
的实例化子 (MainProgram:
) 以便您可以引用在 class MainProgram 中声明的所有属性
- 要从
MessagePage
访问 MainProgram
中的 login
属性,请在 kv 文件中使用 root.manager.ids.main_program.login
。在 python 代码中使用 self.manager.ids.main_program.login
。
- 添加导入语句,
from kivy.properties import StringProperty
- 在 class MainProgram 中声明一个 class 属性,
login = StringProperty('')
。
片段 - kv 文件
ScreenManagement:
RegistrationPage:
PageOne:
MainProgram:
id: main_program
MessagePage:
片段 - py 文件
from kivy.properties import StringProperty
...
class MainProgram(Screen):
login = StringProperty('')
...
我有一个 ScreenManagement 和其中的几个 class 继承屏幕 class。
每个 class 都有依次声明变量的方法。当您与程序交互时会发生变化的变量之一是登录变量。如何从图像上的任何 class 访问这些 classes 中的任何变量?
这是我的 MainProgram class 登录变量:
如何在具有相同class结构的MessagePage class中获取和使用MainProgram class中的登录变量? 换句话说,我需要以某种方式在程序中的所有页面之间传递变量。
- 将
id: main_program
添加到ScreenManagement:
的实例化子 (MainProgram:
) 以便您可以引用在 class MainProgram 中声明的所有属性
- 要从
MessagePage
访问MainProgram
中的login
属性,请在 kv 文件中使用root.manager.ids.main_program.login
。在 python 代码中使用self.manager.ids.main_program.login
。 - 添加导入语句,
from kivy.properties import StringProperty
- 在 class MainProgram 中声明一个 class 属性,
login = StringProperty('')
。
片段 - kv 文件
ScreenManagement:
RegistrationPage:
PageOne:
MainProgram:
id: main_program
MessagePage:
片段 - py 文件
from kivy.properties import StringProperty
...
class MainProgram(Screen):
login = StringProperty('')
...