Kivy-动态更改基本窗口小部件属性

时间:2018-08-14 16:21:08

标签: python kivy

我想更改基维中的基本窗口小部件属性。这很容易用象so这样的奇异语言完成:

<Label>:
    font_size: sp(30)

这不必在我的小部件树中影响到所有在应用初始化时将Label用作基类的类。因此,下面的示例应用程序显示了两个按钮,它们的文本大于我想要的默认文本。

testApp.py

class Main_Screen(Screen):
    pass

class Root_Widget(ScreenManager):
    pass

class testApp(App):
    def build(self):
        return Root_Widget()

if __name__ == '__main__':
    testApp().run()

test.kv

<Root_Widget>:
    Main_Screen:
        BoxLayout:
            Label:
                text: 'Label1'
            Label:
                text: 'Label2'

<Label>:
    font_size: sp(30)

但是,我想根据我的窗口大小来更新这个font_size值(我知道如何动态更改,我只是这里没有包括所有内容)。但是,如何从python访问基类小部件的font_size属性,以便可以对其进行更改?

问题

如何通过python完成此更改,使我可以在应用实例化时进行更改?

1 个答案:

答案 0 :(得分:2)

  1. 添加标签from kivy.uix.label import Label的导入语句
  2. 为sp from kivy.metrics import sp添加导入语句
  3. 使用Label.font_size = sp(30)

代码段-Python代码

from kivy.uix.label import Label
from kivy.metrics import sp

class testApp(App):
    def build(self):
        Label.font_size = sp(30)
        return Root_Widget()

输出

Img01