【发布时间】:2018-01-26 08:03:04
【问题描述】:
通过在 kv 文件中实例化自定义 GridLayout,我为 mes 属性设置了一个整数值。该值不会传递给 python 类变量。我已经声明了与 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
【问题讨论】:
-
你为什么不在你的 init 方法中设置 mes?
self.mes =2可以打印self.cols或者self.rows吗? -
我想在大多数情况下使用 kv lang。使用 init 方法是一个丑陋的解决方法
标签: python properties kivy kivy-language