首页 > 解决方案 > 如何在kivymd MD对话框中创建多个按钮

问题描述

请问大家如何在kivymd的MDDialog框中创建多个按钮?下面是我尝试使用的代码,但它只显示一个按钮。我希望它根据要下载的文件格式的数量显示多个按钮。

def show_alert_dialog(self, file):
    for i in file:
        self.dialog = MDDialog(text="Discard draft?",
            buttons=[
                MDFlatButton(
                    text=str(i), text_color=self.theme_cls.primary_color
                ),
            ],
        )

    self.dialog.open()

标签: pythonkivykivymd

解决方案


您在show_alert_dialog()方法中的循环每次通过循环都会创建一个新MDDialog的,并且每个循环都有一个Button. 然后当循环完成时,该行:

self.dialog.open()

打开最后创建的对话框。解决方法是在循环中创建按钮列表,然后只创建一个包含所有按钮的对话框,如下所示:

def show_alert_dialog(self, file):
    buttons_list = []
    
    for i in file:
        buttons_list.append(MDFlatButton(text=str(i), text_color=self.theme_cls.primary_color))
        
    self.dialog = MDDialog(text="Discard draft?", buttons=buttons_list)

    self.dialog.open()

推荐阅读