官术网_书友最值得收藏!

The starting point

Our "Hello, Kivy" example from the preface is a suitable starting point for this app. We just need to add a layout container, BoxLayout, so that we can fit more than one widget on the screen later.

This is the full source code at this point:

# File: main.py
from kivy.app import App

class ClockApp(App):
    pass

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

# File: clock.kv
BoxLayout:
    orientation: 'vertical'

    Label:
        text: '00:00:00'

Right now, it looks and behaves exactly like the previously seen "Hello, world" app. A BoxLayout container allows two or more child widgets to coexist side by side, stacking either vertically or horizontally. Given just one nested widget, as in the preceding code, BoxLayout fills up all the available screen space with it and thus becomes practically unnoticeable (it's as if Label was a root widget instead, taking over the application window). We will review layouts in more detail later on.

Note

Note that while we may call the main.py file anything we want, the clock.kv file is autoloaded by Kivy, and therefore, has to be named after the application class. For example, if our app class is called FooBarApp, a corresponding .kv file should be named foobar.kv (the class name converted to lowercase and without the -app suffix). Closely following this naming convention allows us to avoid loading Kivy language files manually, which is unequivocally a good thing—less lines of code leading to the same result.

主站蜘蛛池模板: 田东县| 五河县| 邛崃市| 钟山县| 伊宁县| 吉林市| 登封市| 武胜县| 易门县| 梧州市| 桂林市| 郧西县| 临安市| 襄垣县| 梓潼县| 桂东县| 广饶县| 夏河县| 古浪县| 乐安县| 南投县| 广州市| 长垣县| 密云县| 旺苍县| 客服| 钦州市| 无为县| 耿马| 博爱县| 海淀区| 泰兴市| 基隆市| 分宜县| 蒙自县| 朝阳市| 南丹县| 盐边县| 丰原市| 乌拉特后旗| 延川县|