Kvファイルでウィジェットを参照する

2015/10/31

Kv内ではPython側で定義したクラスにインターフェイス情報を加えることができる。

MyWidget:
    Button:
       text: 'test'


でもこのままだと、Appの子として読み込まれてしまう。それを

<MyWidget>:
    Button:
       text: 'test'


こう書くと、子としては読み込まれず、Python側で表示するタイミングを選べる。


参照ウィジェットを読み込むサンプル

# -*- coding: utf-8 -*-

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder

Builder.load_string("""
<MyPanel>:
    Button:
        text: "left"
    Button:
        text: "center"
    Button:
        text: "right"
""")

class MyPanel(BoxLayout):
    pass

class MyApp(App):
    def build(self):
        return MyPanel()

if __name__ == "__main__":
    MyApp().run()