如何解决如何在课程的帮助器中更改按钮的颜色?基旺Python
如何访问教室中的帮助器中的按钮?我想稍后更改按钮的颜色。 我想过一会儿更改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.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,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,对此我是陌生的,如果您能提供帮助,我将感到很高兴。
解决方法
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.screenmanager import Screen
from kivymd.app import MDApp
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.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,1
"""
class MenuScreen(Screen):
pass
class ReflexScreen(Screen):
def on_enter(self,*args):
"""Event fired when the screen is displayed: the entering animation is
complete."""
print(self.ids.reflex_button)
class ReflexApp(MDApp):
def build(self):
screen = Builder.load_string(helper)
return screen
ReflexApp().run()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。