我的主屏幕上有一个带有2个按钮的MDToolbar,并且如果屏幕正在变化,那么当当前屏幕不是主屏幕时,我需要从工具栏上更改按钮。工具栏上的配置文件按钮需要更改为人字形,并具有特定的动作。如何使用KivyMD做到这一点?
main.kv
MainScreen:
screenManager: screenManager
toolbar: toolbar
BoxLayout:
orientation: 'vertical'
MDToolbar:
id: toolbar
pos_hint: {"top": 1}
size_hint: 1, .1
title: 'Main'
elevation: 10
md_bg_color: get_color_from_hex(hex_colormap["blue"])
left_action_items: [] if root.isCurrentScreen('menuScreen') else [['chevron-left', lambda x: root.changeScreen('menuScreen', direction='right')]]
right_action_items: [['settings', lambda x: root.changeScreen('settingsScreen')]] if root.isCurrentScreen('profileScreen') else [['account-circle-outline', lambda x: root.changeScreen('profileScreen')]]
ScreenManager:
id: screenManager
MenuScreen:
id: menuScreen
ProfileScreen:
id: profileScreen
SettingsScreen:
id: settingsScreen
还有main.py的一部分代码
class MainScreen(BoxLayout):
screenManager = ObjectProperty(None)
def changeScreen(self, screen, direction='left', *args):
self.screenManager.current = screen
self.screenManager.transition.direction = direction
def isCurrentScreen(self, screen):
print(self.screenManager.current == screen)
return self.screenManager.current == screen
class MenuScreen(Screen):
pass
class ProfileScreen(Screen):
pass
class SettingsScreen(Screen):
pass
class MyApp(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
def build(self):
return Builder.load_file('main.kv')
if __name__ == '__main__':
MyApp().run()