gpt4 book ai didi

kivy - 我该如何修复 kivymd 中的下拉菜单?

转载 作者:行者123 更新时间:2023-12-05 06:50:40 25 4
gpt4 key购买 nike

我是 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()

最佳答案

您应该在 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()

关于kivy - 我该如何修复 kivymd 中的下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66352107/

25 4 0