Kivy创建屏幕作为变量

时间:2018-04-08 20:10:15

标签: python kivy

我对kivy有疑问。是否可以将屏幕创建为变量?假设我想在kivy应用程序中创建一个带有按钮的新屏幕。有可能吗?如果是这样你怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您只需创建要创建的Screen对象并将其添加到ScreenManager:

screen = Your_Screen(name="some_name")
your_screen_manager.add_widget(screen)

示例:

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.button import Button

class TestScreen(Screen):
    def __init__(self, **kwargs):
        Screen.__init__(self, **kwargs)
        layout = BoxLayout(orientation="vertical")
        self.add_widget(layout)
        layout.add_widget(Label(text=self.name))
        button = Button(text="{}: Add Screen".format(self.name))
        layout.add_widget(button)
        button.bind(on_press=self.add_screen)

    def add_screen(self, *args):
        n = len(self.manager.screen_names)
        screen = TestScreen(name="screen {}".format(n))
        self.manager.add_widget(screen)
        self.manager.current = screen.name 

# Create the screen manager
sm = ScreenManager()
sm.add_widget(TestScreen(name='screen 0'))

class TestApp(App):
    def build(self):
        return sm

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