ウェジェットの切り替え

2015/10/25

Python 2.7.9, Kivy 1.9.0

動的にレイアウトに追加するウィジェットを変更することで、切り替えできる。でもこれだと何にもエフェクトないので、かっこよくするならCarouselとかScreenManagerとかを使う。 本格的にマルチスクリーンのアプリにする場合はScreen Managerを使った方が良いっぽい。

Screen Manager
http://kivy.org/docs/api-kivy.uix.screenmanager.html

動的にレイアウトに追加するウィジェットを変更

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

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button

class MyApp(App):

    def build(self):
        self.layout = BoxLayout(orientation='vertical')
        self.b1 = Button(text='Button1')
        self.b1.bind(on_press=self.switch1)
        self.b2 = Button(text='Button2')
        self.b2.bind(on_press=self.switch2)

        self.layout.add_widget(self.b1)
        return self.layout

    def switch1(self, event):
        self.layout.clear_widgets()
        self.layout.add_widget(self.b2)

    def switch2(self, event):
        self.layout.clear_widgets()
        self.layout.add_widget(self.b1)


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


Switching kivy widgets
http://stackoverflow.com/questions/14699280/switching-kivy-widgets