在 kv 文件中设置 属性 值不会影响 py 简单代码中相同变量的值
Setting property value at kv file doesn't affect the value of same variable at py simple code
通过在 kv 文件中实例化自定义 GridLayout,我为 mes
属性 设置了一个整数值。该值不会传递给 python class 变量。我声明了与 NumericProperty 相同的 属性,但是当我 运行 代码时,打印语句显示在 py 文件中设置的默认值而不是在 kv 文件中设置的值。我不明白为什么会这样。
main.py
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import NumericProperty
class FichaSemApp(App):
pass
class ShowCal(GridLayout):
mes = NumericProperty()
def __init__(self,**kwargs):
super().__init__(**kwargs)
print('VALUE OF mes: ',self.mes)
FichaSemApp().run()
我正在使用 init 方法,因为我需要一些计算来填充网格。
fichasem.kv
ShowCal:
mes: 2
cols: 7
rows: 7
您可能想要执行以下操作:
计划
import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import NumericProperty
class ShowCal(GridLayout):
mes = NumericProperty()
def __init__(self, **kwargs):
super().__init__(**kwargs)
print('VALUE OF mes: ', self.mes)
class FichaSemApp(App):
def build(self):
return ShowCal()
if __name__ == '__main__':
FichaSemApp().run()
Kivy 文件
#:kivy 1.10.0
<ShowCal>:
mes: 2
cols: 7
rows: 7
输出
通过在 kv 文件中实例化自定义 GridLayout,我为 mes
属性 设置了一个整数值。该值不会传递给 python class 变量。我声明了与 NumericProperty 相同的 属性,但是当我 运行 代码时,打印语句显示在 py 文件中设置的默认值而不是在 kv 文件中设置的值。我不明白为什么会这样。
main.py
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import NumericProperty
class FichaSemApp(App):
pass
class ShowCal(GridLayout):
mes = NumericProperty()
def __init__(self,**kwargs):
super().__init__(**kwargs)
print('VALUE OF mes: ',self.mes)
FichaSemApp().run()
我正在使用 init 方法,因为我需要一些计算来填充网格。
fichasem.kv
ShowCal:
mes: 2
cols: 7
rows: 7
您可能想要执行以下操作:
计划
import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import NumericProperty
class ShowCal(GridLayout):
mes = NumericProperty()
def __init__(self, **kwargs):
super().__init__(**kwargs)
print('VALUE OF mes: ', self.mes)
class FichaSemApp(App):
def build(self):
return ShowCal()
if __name__ == '__main__':
FichaSemApp().run()
Kivy 文件
#:kivy 1.10.0
<ShowCal>:
mes: 2
cols: 7
rows: 7