首页 > 解决方案 > 如何在kivy python中的两个屏幕之间切换?

问题描述

我正在尝试在两个屏幕之间切换.. 但它不起作用.. 它没有显示任何内容或任何错误我不知道是什么问题,这是我的代码

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen


class mainWindow(Screen):
    pass


class secondWindow(Screen):
    pass


class windowManager(ScreenManager):
    pass

sm = ScreenManager()
sm.add_widget(mainWindow(name='main'))
sm.add_widget(secondWindow(name='second'))


class multApp(App):
    def build(self):
        return mainWindow()


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

和 mult.kv

windowManager:
    mainWindow:
    secondWindow:

<mainWindow>:
    name: "main"

    Button:
        text: "Submit"
        on_press : root.manager.current = "second"

<secondWindow>:
    name: "second"

    Button:
        text: "go back"
        on_press : root.manager.current = "main"

标签: pythonpython-3.xkivykivy-languagesplit-screen-multitasking

解决方案


我同意约翰的回答,只是补充一下。如果您将管理器声明为一个类,我总是在构建方法中返回管理器,这也是在您的根管理器下为您的屏幕创建 id 的好习惯,这样会使它们更容易引用

<WindowManager>:
    id: screen_manager

    MainWindow:

         id: main_window
         name: "main_window"
         manager: screen_manager   

    SecondWindow:

         id: second_window
         name: "second_window"
         manager: screen_manager 

推荐阅读