在 KivyMD Python 中更改启动屏幕时如何在启动时显示或关闭消息?

How to show or dismissed a message at startup when the start screen is changed in KivyMD Python?

我是 Python 的初学者。如果我的 KivyMD 应用程序中的起始屏幕是 screen1,我想关闭一条消息。如果起始屏幕是屏幕 2 或任何其他屏幕,则应始终显示该消息。我该怎么做?

这是我的代码。


from kivy.lang.builder import Builder
from kivy.uix.screenmanager import Screen
from kivymd.app import MDApp
from kivymd.uix.button import MDFlatButton, MDRaisedButton
from kivymd.uix.dialog import MDDialog

screen_helper = """

ScreenManager:
    Screen1:
    Screen2:
    
<Screen1>:
    name : 'screen1'
    
<Screen2>:
    name : 'screen2'
    
"""


class Screen1(Screen):
    pass


class Screen2(Screen):
    pass


class Mode(MDApp):
    def build(self):
        return Builder.load_string(screen_helper)

    def on_start(self):
        self.add_songs_dialog = MDDialog(
            title="Add Songs",
            text="Your Albums are Empty.Mode has been either restored or Albums have been Deleted."
                    "\n\nYou should add Songs to Launch Mode.",
            buttons=[
                MDFlatButton(
                    text='Later', font_style='Button'
                ),
                MDRaisedButton(
                    text='Add Songs', font_style='Button', md_bg_color=self.theme_cls.accent_dark
                ),
            ],
        )
        self.add_songs_dialog.open()

Mode().run()

我尝试了几种方法,但找不到正确的解决方案。请帮助我。

from kivy.lang.builder import Builder
from kivy.uix.screenmanager import Screen
from kivymd.app import MDApp
from kivy.uix.popup import Popup

screen_helper = """
ScreenManager:
    Screen1:
    Screen2:

<Screen1>:
    name : 'screen1'
    MDFlatButton:
        id: button
        text: "Go to Page 2"

<Screen2>:
    name : 'screen2'
    MDFlatButton:
        id: button
        text: "Go to Page 1"

<CustomPopup>:
    size_hint: None, None
    size: dp(350), dp(300)
    pos_hint: {'center_x': .5, 'center_y': .5}
    MDLabel:
        text: 'I am displayed on every screen except "screen1"'
"""


class Screen1(Screen):
    pass

class Screen2(Screen):
    pass

class CustomPopup(Popup):
    pass

class MyApp(MDApp):
    def build(self):
        return Builder.load_string(screen_helper)

    def change_screen(self, name):
        self.root.current = name
        if not name == "screen1":
            CustomPopup().open()

    def on_start(self):
        self.root.get_screen("screen1").ids["button"].bind(on_press=lambda w: self.change_screen("screen2"))
        self.root.get_screen("screen2").ids["button"].bind(on_press=lambda w: self.change_screen("screen1"))

MyApp().run()