Kivy:如何设置子类相对于父类的属性?

问题描述 投票:0回答:1

我正在将我的布局从.py文件转移到.kv文件。然而,我在设置自定义标签子类的文字大小时遇到了困难,因为它是相对于父类的。

两个自定义标签类在.py脚本中定义如下。

class BaseLabel(Label):
    pass

class SmallLabel(BaseLabel):
    pass

而在.kv文件中读作:

<BaseLabel>:
    color: 1, 0, 0, 1
    font_size: '20sp'

<SmallLabel>:
    font_size: 0.8*BaseLabel().font_size

但是最后一行导致错误,说BaseLabel没有定义。我应该如何在kv文件中调整这个错误?

kivy subclass kivy-language
1个回答
0
投票

一个简单的方法是在文件中定义一个键。kv,像这样。

#:set my_font_size sp(20)
<BaseLabel>:
    color: 1, 0, 0, 1
    font_size: my_font_size

<SmallLabel>:
    font_size: 0.8*my_font_size
© www.soinside.com 2019 - 2024. All rights reserved.