You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何KivyMD 1.2.0中Snackbar(text="Message")无text属性?

解决KivyMD 1.2.0中Snackbar的文本与按钮显示问题

KivyMD 1.2.0版本的Snackbar和较新版本API差异较大,官方文档可能更新不及时导致混淆,以下是适配该版本的正确实现方式:

1. 设置Snackbar主文本

该版本没有text属性,需要手动添加MDLabel作为Snackbar的子组件来显示文本:

from kivymd.app import MDApp
from kivymd.uix.snackbar import Snackbar
from kivymd.uix.label import MDLabel

class TestApp(MDApp):
    def show_snackbar(self):
        snackbar = Snackbar()
        # 添加文本标签
        snackbar.add_widget(MDLabel(text="这是Snackbar的主文本", color=(1,1,1,1)))
        snackbar.open()

    def build(self):
        self.show_snackbar()

TestApp().run()

2. 添加可点击按钮并显示文本

同样需要手动添加MDFlatButton作为子组件,注意设置按钮的pos_hint调整位置:

from kivymd.app import MDApp
from kivymd.uix.snackbar import Snackbar
from kivymd.uix.label import MDLabel
from kivymd.uix.button import MDFlatButton

class TestApp(MDApp):
    def show_snackbar(self):
        snackbar = Snackbar()
        # 添加主文本
        snackbar.add_widget(MDLabel(text="操作完成", color=(1,1,1,1)))
        # 添加按钮
        btn = MDFlatButton(text="撤销", on_release=lambda x: snackbar.dismiss())
        btn.pos_hint = {"center_y": 0.5}
        snackbar.add_widget(btn)
        snackbar.open()

    def build(self):
        self.show_snackbar()

TestApp().run()

注意事项

  • KivyMD 1.2.0属于旧版本,建议尽量升级到较新稳定版(如1.3.0+),新版本恢复了更易用的text和button_text等属性,无需手动添加组件。
  • 如果必须使用1.2.0版本,Snackbar的布局需要手动控制子组件的位置,避免内容重叠或显示异常。

内容的提问来源于stack exchange,提问作者Shayan-H20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 21:03:10