如何在课堂上访问 Helper 中的按钮?我想稍后更改按钮的颜色。我想在一段时间后更改 id 为 reflex_button 的按钮的颜色,但我唯一的问题是如何在 ReflexScreen 类中获取具有此 id 值的按钮。
from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.screenmanager import Screen,ScreenManager
Window.size = (300, 500)
helper = """
ScreenManager:
MenuScreen:
ReflexScreen:
<ReflexScreen>:
name: 'reflex'
Button:
id: reflex_button
text: 'Wait Change The Color'
font_size: '20sp'
pos_hint: {'center_x':0.5, 'center_y':0.5}
on_press: root.manager.current = 'menu'
size_hint_x: None
size_hint_y: None
width: 300
height: 500
background_color: 1,0,0,0.8
<MenuScreen>
name: 'menu'
Screen:
NavigationLayout:
ScreenManager:
Screen:
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: 'Test Your Reflex'
left_action_items: [["menu", lambda x: nav_drawer.toggle_nav_drawer()]]
right_action_items: [["dots-vertical", lambda x: nav_drawer.toggle_nav_drawer()]]
elevation:10
Widget:
MDRectangleFlatButton:
text: 'Play'
on_press: root.manager.current = 'reflex'
size_hint_x: None
size_hint_y: None
width: 20
height: 30
pos_hint: {'center_x':0.5, 'center_y':0.5}
md_bg_color: 0.2,0.3,0.6,0.1
text_color: 0.2, 0.5, 0.6, 1
"""
class MenuScreen(Screen):
pass
class ReflexScreen(Screen):
pass
sm = ScreenManager()
sm.add_widget(ReflexScreen(name='reflex'))
sm.add_widget(MenuScreen(name='screen'))
class ReflexApp(MDApp):
def build(self):
screen = Builder.load_string(helper)
return screen
ReflexApp().run()
我开始学习 Kivy,我是新手,如果你能提供帮助,我会很高兴。