通过在kv文件中实例化自定义GridLayout,我为mes
属性(整数)设置了一个值。该值不会传递给python类变量。我已经声明了与NumericProperty相同的属性,但是当我运行代码时,print语句显示的是在py文件中设置的默认值,而不是在kv文件中设置的值。我不明白为什么会发生这种情况。在kv文件中设置属性值不会影响py上相同变量的值简单代码
的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
为什么你不在你的init方法中设置mes? 'self.mes = 2'你可以打印self.cols或self.rows? – PalimPalim
我想在大多数情况下使用kv lang。使用__init__方法是一个丑陋的解决方法 –