как использовать MDDropdownMenu с кнопкой KivyMD?

#python #python-3.x #kivy #kivymd

Вопрос:

я хотел создать выпадающее меню, связанное с кнопкой со значком, при нажатии на которую появится диалоговое окно подтверждения . Но когда я нажимаю на кнопку значка , чтобы открыть диалоговое окно, появляется это сообщение об ошибке

 MDDropdownMenu() takes no arguments
 

всплывает . Это мой первый раз, когда я составляю выпадающий список, и я все еще свежее, поэтому я понятия не имею, что делать.

код

 def drop_down(self):
    self.dropdown = MDDropdownMenu()
    dropmenu = self.root.ids['Chat_Screen'].ids['dropdown']
    self.dropdown = MDDropdownMenu(dropmenu = dropmenu, items=[{"viewclass": "MDMenuItem", "text": "option1"}], width_mult=4)
    self.dropdown.open()
 

это в классе MDApp

файл .kv

 MDIconButton:
                #icon: 'phone-outline'
                id:LIST
                name:'LIST'
                theme_text_color: 'Custom'
                text_color: app.theme_cls.primary_color
                user_font_size: 16
                size_hint: (None, None)
                pos_hint: {'center_y':.5}
                size: 30, 30
                padding: 0
                md_bg_color: app.theme_cls.bg_darkest if app.theme_cls.theme_style == 'Light' else app.theme_cls.bg_dark
            MDIconButton:
                id: dropdown
                icon: 'dots-vertical'
                theme_text_color: 'Custom'
                text_color: app.theme_cls.primary_color
                user_font_size: 20
                size_hint: (None, None)
                pos_hint: {'center_y':.5}
                size: 30, 30
                padding: 0
                md_bg_color: app.theme_cls.bg_darkest if app.theme_cls.theme_style == 'Light' else app.theme_cls.bg_dark
                on_press: app.drop_down()
                
 

Ответ №1:

Попробуйте изменить:

 self.dropdown = MDDropdownMenu(dropmenu = dropmenu, items=[{"viewclass": "MDMenuItem", "text": "option1"}], width_mult=4)
 

Для:

 self.dropdown = MDDropdownMenu(caller=dropmenu, items=[{"viewclass": "MDMenuItem", "text": "option1"}], width_mult=4)
 

Комментарии:

1. все та же проблема «MDDropdownMenu() не принимает аргументов»