无法将 right_action_items 添加到 KivyMD 工具栏
Can't add right_action_items to KivyMD Toolbar
我正在尝试向我的 MDToolbar 添加 2 个按钮,它们通常使用 属性 right_action_items。我的工具栏代码如下所示:
self.main_toolbar = MDToolbar(
title = "Home",
right_action_items = [["import", lambda args: print("import pressed")],["export", lambda args: print("export pressed")]],
pos_hint = {"top": 1}
)z
self.smain.add_widget(self.main_toolbar)
self.smain 是我的屏幕变量。
我得到的错误说在 kivymd 模块的某处有一个带有“right_actions”的 KeyError。错误中没有任何对我的代码的引用,只是说错误来自我的 MDToolbar
最小可重现样本:
from kivymd.app import MDApp
from kivymd.uix.screen import MDScreen
from kivymd.uix.toolbar import MDToolbar
class MyApp(MDApp):
def build(self):
screen = MDScreen()
screen.add_widget(MDToolbar(
title = "Placeholder",
right_action_items = [["import", lambda x: print("import clicked")], ["export", lambda x: print("export clicked")]]
))
return screen
MyApp().run()
实际上你有一些事情可以解决这个问题(问题实际上存在于 MDToolbar
的源代码中,它在 kvlang 中工作得很好,但在 python 中却不行)。
在这里,你可以使用attr。 right_action_items
就像 class 属性。而不是实例属性。作为,
from kivymd.app import MDApp
from kivymd.uix.screen import MDScreen
from kivymd.uix.toolbar import MDToolbar
class MyApp(MDApp):
def build(self):
screen = MDScreen()
self.tb = MDToolbar(
title = "Placeholder",
)
self.tb.right_action_items = [["import", lambda x: print("import clicked")], ["export", lambda x: print("export clicked")]]
screen.add_widget(self.tb)
return screen
MyApp().run()
我正在尝试向我的 MDToolbar 添加 2 个按钮,它们通常使用 属性 right_action_items。我的工具栏代码如下所示:
self.main_toolbar = MDToolbar(
title = "Home",
right_action_items = [["import", lambda args: print("import pressed")],["export", lambda args: print("export pressed")]],
pos_hint = {"top": 1}
)z
self.smain.add_widget(self.main_toolbar)
self.smain 是我的屏幕变量。
我得到的错误说在 kivymd 模块的某处有一个带有“right_actions”的 KeyError。错误中没有任何对我的代码的引用,只是说错误来自我的 MDToolbar
最小可重现样本:
from kivymd.app import MDApp
from kivymd.uix.screen import MDScreen
from kivymd.uix.toolbar import MDToolbar
class MyApp(MDApp):
def build(self):
screen = MDScreen()
screen.add_widget(MDToolbar(
title = "Placeholder",
right_action_items = [["import", lambda x: print("import clicked")], ["export", lambda x: print("export clicked")]]
))
return screen
MyApp().run()
实际上你有一些事情可以解决这个问题(问题实际上存在于 MDToolbar
的源代码中,它在 kvlang 中工作得很好,但在 python 中却不行)。
在这里,你可以使用attr。 right_action_items
就像 class 属性。而不是实例属性。作为,
from kivymd.app import MDApp
from kivymd.uix.screen import MDScreen
from kivymd.uix.toolbar import MDToolbar
class MyApp(MDApp):
def build(self):
screen = MDScreen()
self.tb = MDToolbar(
title = "Placeholder",
)
self.tb.right_action_items = [["import", lambda x: print("import clicked")], ["export", lambda x: print("export clicked")]]
screen.add_widget(self.tb)
return screen
MyApp().run()