【问题标题】:dropdown menu KivyMD not opening下拉菜单 KivyMD 未打开
【发布时间】:2021-10-05 20:42:08
【问题描述】:

当我尝试打开下拉菜单时,python 代码没有任何反应:

from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivymd.app import MDApp
from kivymd.uix.menu import MDDropdownMenu
from kivy.properties import ObjectProperty


class app(MDApp):
    dropdown = ObjectProperty
    
    def print(self):
        print("pressed!")
    
    def on_start(self):
        self.dropdown = MDDropdownMenu()

        self.dropdown.items.append({"viewclass":"MDMenuItem","text":"Option 1"})
    
    def build(self):
        return Builder.load_file("main.kv")
    


app().run()

这是 .kv 文件:

MDBoxLayout:
    orientation: "vertical"

    MDToolbar:
        title: "MDToolbar"
        left_action_items: [["menu", lambda x: app.dropdown.open()]]


    MDLabel:
        text: "Content"
        halign: "center"

我希望知道自己在做什么的人可以帮助我,因为我需要它。 提前谢谢你。

【问题讨论】:

    标签: python python-3.x kivy kivy-language kivymd


    【解决方案1】:

    我相信您必须为MDDropdownMenu 提供一个caller,用于定位MDDropdownMenu。如果您在 kv 中为MDToolBar 添加id

    MDToolbar:
        id: toolbar
        title: "MDToolbar"
        left_action_items: [["menu", lambda x: app.dropdown.open()]]
    

    然后您可以像这样提供caller

        self.dropdown = MDDropdownMenu(caller=self.root.ids.toolbar.ids.left_actions)
    

    【讨论】:

    • 它对你有用吗@John Anderson,因为它对我不起作用
    猜你喜欢
    • 2020-05-23
    • 2018-12-23
    • 2021-10-09
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多