【发布时间】:2020-12-25 00:50:06
【问题描述】:
当我按下工具栏图标时,我试图改变屏幕,但 kivy 说 str 对象不可调用。我该如何解决? (我明白,问题出在语法上,请帮忙)
from kivy.lang import Builder
from kivymd.app import MDApp
KV = '''
Screen:
MDToolbar:
id: toolbar
pos_hint: {"top": 1}
elevation: 10
title: "MDNavigationDrawer"
left_action_items: [["menu", lambda x: nav_drawer.set_state("open")]]
NavigationLayout:
x: toolbar.height
ScreenManager:
id: screen_manager
Screen:
name: "scr 1"
MDLabel:
text: "Screen 1"
halign: "center"
Screen:
name: "scr 2"
MDToolbar:
id: toolbar
pos_hint: {"top": 1}
elevation: 10
title: "MDNavigationDrawer"
left_action_items: [["arrow-left", lambda x: screen_manager.current("scr 1")]]
MDLabel:
text: "Screen 2"
halign: "center"
MDNavigationDrawer:
id: nav_drawer
screen_manager: screen_manager
nav_drawer: nav_drawer
ScrollView:
MDList:
OneLineListItem:
text: "Screen 1"
on_press: self.parent.parent.parent.nav_drawer.set_state("close") self.parent.parent.parent.screen_manager.current = "scr 1"
OneLineListItem:
text: "Screen 2"
on_press: self.parent.parent.parent.nav_drawer.set_state("close") self.parent.parent.parent.screen_manager.current = "scr 2"
'''
class TestNavigationDrawer(MDApp):
def build(self):
return Builder.load_string(KV)
TestNavigationDrawer().run()
TypeError: 'str' 对象不可调用
【问题讨论】:
标签: kivy toolbar kivy-language kivymd