
kivymd 1.2.0 版本中 `snackbar` 已移除 `text` 参数,导致按旧文档写法无法显示消息;降级至兼容版本 1.1.1 即可恢复 `text` 属性支持。
在 KivyMD 1.2.0 中,Snackbar 的 API 发生了重大变更:text 参数已被完全移除,取而代之的是更结构化的组件模型(如需自定义内容,须通过 SnackbarContent 子类或 snackbar_x 等新参数组合实现)。但这一改动并未同步更新所有官方示例与社区教程,造成大量开发者沿用 Snackbar(text="...") 写法时出现 TypeError: __init__() got an unexpected keyword argument 'text' 错误。
✅ 正确解决方案(兼容性优先):
降级至 KivyMD 1.1.1(该版本仍完整支持 text 属性,且文档示例与之匹配):
pip uninstall kivymd -y pip install kivymd==1.1.1
安装后即可正常使用经典语法:
from kivymd.uix.snackbar import Snackbar # ✅ 在 KivyMD 1.1.1 中有效 snackbar = Snackbar(text="Operation completed successfully!") snackbar.open()
⚠️ 注意事项:
- 不建议在 KivyMD 1.2.0+ 中强行“修复” text 属性——它已非标准接口,硬编码会破坏版本兼容性;
- 若必须使用 1.2.0+,请查阅 最新官方文档,改用 SnackbarContent + MDIconButton 组合构建自定义 Snackbar;
- 降级前建议检查项目是否依赖 1.2.0 的其他新特性(如 MDDialog 增强或主题系统更新),避免引入隐性冲突。
? 总结:版本不匹配是此类问题的根本原因。开发中应始终以 pip show kivymd 确认实际安装版本,并对照对应版本的文档(而非通用搜索结果)编写代码。






