从 kivymd 工具栏更改屏幕
Posted
技术标签:
【中文标题】从 kivymd 工具栏更改屏幕【英文标题】:changing screen from kivymd toolbar 【发布时间】:2021-05-21 01:01:45 【问题描述】:我想从 MDToolbar 更改屏幕。
from kivy.properties import BooleanProperty, ObjectProperty
from kivy.uix.boxlayout import BoxLayout
from kivymd.app import MDApp
from kivy.core.window import Window
Window.size = (300, 500)
class MyLayout(BoxLayout):
scr_mngr = ObjectProperty(None)
def change_screen(self, screen, *args):
self.scr_mngr = screen
class MenuOSApp(MDApp):
def on_start(self):
pass
if __name__ == '__main__':
MenuOSApp().run()
还有我的 .kv 文件
MyLayout:
orientation: "vertical"
MDBottomAppBar:
MDToolbar:
icon: "basket"
type: "bottom"
left_action_items: [["food", lambda x: root.change_screen('screen1') ], ["coffee", lambda x:root.change_screen('screen2')]]
mode: "free-end"
ScreenManager:
id: scr_mngr
Screen:
name: 'screen1'
MDToolbar:
title: "Screen 1"
Screen:
name: 'screen2'
MDToolbar:
title: "Screen 2"
不知何故,这不起作用。如果我尝试在 change_screen() 函数中打印出一些东西,那效果很好。 有什么建议?提前致谢。
【问题讨论】:
【参考方案1】:MyLayout:
scr_mngr: scr_mngr
或者
def change_screen(self, screen, *args):
self.root.ids.scr_mngr.current = screen
【讨论】:
以上是关于从 kivymd 工具栏更改屏幕的主要内容,如果未能解决你的问题,请参考以下文章