【问题标题】:how can i fix this dropdown menu in kivymd?如何在 kivymd 中修复此下拉菜单?
【发布时间】:2021-05-26 20:15:54
【问题描述】:

我是 kivy/kivymd 的新手,我正在尝试通过 kivymd 文档创建一个下拉菜单。但是,每当我单击下拉菜单时,它都会向我返回此错误:

AttributeError: 'Box_2' 对象没有属性 'menu'

我不确定我做错了什么,所以欢迎任何帮助。

这是我的 .py 文件:(如文档中所示)

class Box_2(GridLayout):
    def set_item(self, instance_menu, instance_menu_item):
        menu_items = [{"icon": "git", "text": f"Item {i}"} for i in range(5)]
        self.menu = MDDropdownMenu(
            caller=self.Box_2.ids.drop_item,
            items=menu_items,
            position="center",
            width_mult=4,
        )
        self.menu.bind(on_release=self.set_item)

        self.Box_2.ids.drop_item.set_item(instance_menu_item.text)
        self.menu.dismiss() 

这是我的 .kv 文件:

<Box_2>:
    MDDropDownItem:
        id: drop_item
        text: 'Projeto'
        on_release: root.menu.open()

【问题讨论】:

    标签: kivy kivy-language kivymd


    【解决方案1】:

    您应该在 Box_2 类中启动菜单变量 所以现在 Box_2 有变量,并且当你使用 init 方法创建类时应该调用 set_item 方法

    class Box_2(GridLayout):
        menu =None #add this line 
        def set_item(self, instance_menu, instance_menu_item):
            menu_items = [{"icon": "git", "text": f"Item {i}"} for i in range(5)]
            self.menu = MDDropdownMenu(
                caller=self.Box_2.ids.drop_item,
                items=menu_items,
                position="center",
                width_mult=4,
            )
            self.menu.bind(on_release=self.set_item)
    
            self.Box_2.ids.drop_item.set_item(instance_menu_item.text)
            self.menu.dismiss() 
    

    【讨论】:

      猜你喜欢
      • 2021-08-29
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多