python - 如何在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()
解决方案
您在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()
推荐阅读
- flutter - 如何让 openEndDrawer() 响应我的自定义 AppBar 按钮而不是想象的 AppBar 按钮?
- heroku - apt-get update 在 Heroku 中返回 Acquire (30: Read only file system) 错误
- sql - 从查询中删除 / 反斜杠以在 oracle 中获取有效数据
- typescript - 未处理的承诺拒绝:NotAllowedError:用户代理不允许该请求
- c# - Newtonsoft.Json 转换器抛出异常说“无法加载文件或程序集'System.Security.Permissions'”
- python - 欧拉计划问题 52:寻找置换倍数
- node.js - 为什么在 NodeJS 应用中启用 CORS 后仍然出现 CORS 错误?
- ssl - 谷歌负载均衡器重定向错误
- python - 具有固定峰值的抛物线拟合
- java - 如何使用 Java 和 Gson 中的构建器模式将选择类字段序列化为 JSON 字符串?