我正在使用 KivyMD,并且想使用“on_pre_enter”方法刷新第二个屏幕中的数据。我试图从屏幕类“on_pre_enter”方法访问标签 ID,但没有成功。
我可以从“MainApp”类访问标签ID,但无法从“Second_Screen”类访问它。
主应用程序.py
from kivy.lang import Builder
from kivymd.app import MDApp
from kivy.uix.screenmanager import ScreenManager, Screen
class MainApp(MDApp):
def __init__(self, **kwargs):
self.title = "My Material Application"
self.theme_cls.primary_palette = "Blue"
super().__init__(**kwargs)
def on_start(self):
self.root.ids.main_screen_label.text = "Main Screen Updated"
def build(self):
self.root = Builder.load_file("app.kv")
class Second_Screen(Screen):
def on_pre_enter(self):
MainApp.ids.second_screen_label = "Second Screen Updated"
pass
if __name__ == "__main__":
MainApp().run()
Run Code Online (Sandbox Code Playgroud)
应用程序kv
NavigationLayout:
MDNavigationDrawer:
NavigationDrawerSubheader:
text: "Menu:"
NavigationDrawerIconButton:
icon:'battery'
text: "Main Screen"
on_release:
screen_manager.current = "main_screen"
NavigationDrawerIconButton:
icon:'battery'
text: "Second Screen"
on_release: …Run Code Online (Sandbox Code Playgroud) 我正在使用KivyMD 0.102.0,它在运行 main.py 文件时给了我一个错误。
我收到以下错误。
Error: No module named 'kivymd.app'
Run Code Online (Sandbox Code Playgroud)
运行此示例代码时