首页 > 解决方案 > Kivy 关于弹出窗口和屏幕

问题描述

我有一个问题,在 Kivy 中是否可以从弹出窗口切换到另一个屏幕?

标签: kivyscreenpopupwindow

解决方案


这是一种解决方案

在此处输入图像描述

from kivy.lang.builder import Builder
from kivy.app import App
from kivy.uix.popup import Popup

kv = """
#:import Factory kivy.factory.Factory

<ChangePopup>:
    size_hint: (None, None)
    size: (200, 200)

    Button: 
        text: "Change screen"
        on_press: app.root.current = 'screen2'; root.dismiss()

ScreenManager:
    Screen:
        BoxLayout:
            orientation: 'vertical'
            Label:
                text: "Screen1"
            Button:
                text: "Open Popup to change to Screen2"
                on_press: Factory.ChangePopup().open()
    Screen:
        name: 'screen2'
        Label:
            text: "Screen2"
"""

class ChangePopup(Popup):
    pass

sm = Builder.load_string(kv)

class NewApp(App):

    def build(self):
        return sm

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

推荐阅读