有没有办法从另一个屏幕访问属性(class 变量)
Is there a way to access properties(class variables) from another screen
我正在使用 kivy,我有两个屏幕,一个有 class 个数字属性变量,我有根据情况更改值的方法。第二个屏幕应该用于向用户显示最终值。
class Main(Screen):
transport_price_value = NumericProperty(0)
def change_value_on_press(self):
self.transport_price_value += 10
class Second(Screen):
def display_transport_price_value(self):
return str(Main.transport_price_value)
class WindowManager(ScreenManager):
pass
class Example(App):
pass
当我单击触发“display_transport_price_value”功能的提交按钮时,returns 名称而不是 属性
的值
因为 Main
只是一个 class
而不是 instance
,并且因为在 python 中可以有多个实例,所以你真正需要的是一个获取由 kivy 创建的 Main
实例的方法。我没有测试过,但我认为这会起作用:
class Main(Screen):
transport_price_value = NumericProperty(0)
def change_value_on_press(self):
self.transport_price_value += 10
class Second(Screen):
def display_transport_price_value(self):
main_screen = self.manager.get_screen("main")
return str(main_screen.transport_price_value)
class WindowManager(ScreenManager):
pass
class Example(App):
pass
来源:
我正在使用 kivy,我有两个屏幕,一个有 class 个数字属性变量,我有根据情况更改值的方法。第二个屏幕应该用于向用户显示最终值。
class Main(Screen):
transport_price_value = NumericProperty(0)
def change_value_on_press(self):
self.transport_price_value += 10
class Second(Screen):
def display_transport_price_value(self):
return str(Main.transport_price_value)
class WindowManager(ScreenManager):
pass
class Example(App):
pass
当我单击触发“display_transport_price_value”功能的提交按钮时,returns 名称而不是 属性
的值因为 Main
只是一个 class
而不是 instance
,并且因为在 python 中可以有多个实例,所以你真正需要的是一个获取由 kivy 创建的 Main
实例的方法。我没有测试过,但我认为这会起作用:
class Main(Screen):
transport_price_value = NumericProperty(0)
def change_value_on_press(self):
self.transport_price_value += 10
class Second(Screen):
def display_transport_price_value(self):
main_screen = self.manager.get_screen("main")
return str(main_screen.transport_price_value)
class WindowManager(ScreenManager):
pass
class Example(App):
pass
来源: