在kv文件中设置属性值不会影响py简单代码中相同变量的值

时间:2017-08-17 18:57:48

标签: python properties kivy kivy-language

通过在kv文件中实例化自定义GridLayout,我为pd.DataFrame( np.mean([d.values for d in dfs], 0), dfs[0].index, dfs[0].columns) Time 25 50 75 100 0 1.0 6.5 2.0 5.5 7.0 1 2.0 3.0 1.0 6.0 8.0 2 3.0 3.0 2.5 7.0 8.0 3 4.0 4.0 4.5 6.0 8.0 4 5.0 3.0 4.5 6.0 8.0 属性设置了一个整数值。该值不会传递给python类变量。我声明了与NumericProperty相同的属性,但是当我运行代码时,print语句显示在py文件中设置的默认值,而不是在kv文件中设置的值。我无法理解为什么会这样。

main.py

mes

我正在使用 init 方法,因为我需要一些计算来填充网格。

fichasem.kv

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()

1 个答案:

答案 0 :(得分:0)

您可能需要执行以下操作:

程序

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

输出

enter image description here